gina 0.5.7 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +5 -8
- package/ROADMAP.md +2 -0
- package/framework/v0.5.8/VERSION +1 -0
- package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.js +7 -2
- package/framework/{v0.5.7 → v0.5.8}/core/server.isaac.js +35 -16
- package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/help.txt +37 -0
- package/framework/v0.5.8/lib/cmd/connector/models.js +506 -0
- package/framework/v0.5.8/lib/cmd/framework/help.js +90 -0
- package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/help.txt +2 -1
- package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/init.js +31 -0
- package/framework/{v0.5.7 → v0.5.8}/lib/cmd/helper.js +0 -1
- package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/help.txt +3 -3
- package/framework/{v0.5.7 → v0.5.8}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +2 -2
- package/package.json +3 -3
- package/framework/v0.5.7/VERSION +0 -1
- package/framework/v0.5.7/lib/cmd/framework/help.js +0 -52
- /package/framework/{v0.5.7 → v0.5.8}/AUTHORS +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/LICENSE +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/html/static.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/config.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/content.encoding +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/dev/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/gna.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/locales/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/locales/currency.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/locales/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/mime.types +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/model/entity.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/model/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/model/template/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/router.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/server.express.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/server.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/status.codes +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/_gitignore +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/conf/env.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/conf/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/console.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/context.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/data/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/data/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/json/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/json/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/path.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/prototypes.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/task.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/helpers/text.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/admin/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/archiver/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/archiver/build.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/archiver/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/async/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/async/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cache/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cache/build.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cache/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/collection/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/collection/build.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/collection/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/config.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cron/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cron/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/domain/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/domain/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/generator/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/i18n/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inherits/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inherits/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/instrument/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/job/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/job/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/job-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/math/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/merge/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/merge/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/metrics/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/model.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/proc.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/routing/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/routing/build.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/routing/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/secrets/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/session-store.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/shell.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/state.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/url/README.md +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/url/index.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/url/routing.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/uuid/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/validator.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/watcher/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.5.7 → v0.5.8}/lib/ws-session/src/main.js +0 -0
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
var fs = require('fs');
|
|
2
|
+
var console = lib.logger;
|
|
3
|
+
|
|
4
|
+
var CmdHelper = require('./../helper');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @module gina/lib/cmd/connector/models
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Lists the models a configured AI connector's provider can serve, OUTSIDE a
|
|
11
|
+
* request. Resolves the connector config (shared, or shared+bundle merged),
|
|
12
|
+
* instantiates the `ai` connector directly, and calls the provider client's
|
|
13
|
+
* `models.list()` — the provider's LIVE model catalogue. This is the read
|
|
14
|
+
* sibling of `connector:test --connect`, which makes the very same call but
|
|
15
|
+
* keeps only the count and throws the array away; `connector:models` surfaces
|
|
16
|
+
* the model ids themselves, so a caller can populate a model picker, script a
|
|
17
|
+
* "does the provider offer model X?" check, or audit which models a project's
|
|
18
|
+
* connector can actually reach.
|
|
19
|
+
*
|
|
20
|
+
* Like `connector:infer` / `connector:test`, the connector class is NOT
|
|
21
|
+
* instantiated through `getModel` (its per-bundle registry is empty in CLI
|
|
22
|
+
* scope). The AI connector is built directly: `setPath('project', <path>)` so
|
|
23
|
+
* the provider SDK resolves from the target project's node_modules, then
|
|
24
|
+
* `new AIConnector(entry).onReady(...)`. `${secret:KEY}` placeholders (typically
|
|
25
|
+
* the `apiKey`) are resolved from `process.env` via `lib.secrets` — fail-closed,
|
|
26
|
+
* and the resolved value is NEVER echoed; only the model list is printed, which
|
|
27
|
+
* carries no secrets.
|
|
28
|
+
*
|
|
29
|
+
* When the provider client exposes no `models.list` (a defensive case — every
|
|
30
|
+
* currently-supported provider's SDK client does), the command reports the
|
|
31
|
+
* connector as UNSUPPORTED and exits non-zero rather than fabricating an empty
|
|
32
|
+
* list as if the provider offered nothing. A non-`ai` connector is rejected
|
|
33
|
+
* cleanly (this command is AI-subtype-specific).
|
|
34
|
+
*
|
|
35
|
+
* Operational note (mirrors `connector:infer` / `connector:test`): a detached
|
|
36
|
+
* CLI invocation only sees its own shell environment, not secrets a supervisor
|
|
37
|
+
* injects at bundle start. Run against a shell that exports the keys, or pass
|
|
38
|
+
* `--api-key=<literal>`. Offline / local providers such as `ollama://`
|
|
39
|
+
* (localhost, no key) work with no internet — `models.list()` returns the
|
|
40
|
+
* locally-pulled models.
|
|
41
|
+
*
|
|
42
|
+
* Usage:
|
|
43
|
+
* gina connector:models <connector> @<project> # shared config view
|
|
44
|
+
* gina connector:models <connector> <bundle> @<project> # merged shared+bundle view
|
|
45
|
+
* gina connector:models <connector> @<project> --format=json
|
|
46
|
+
*
|
|
47
|
+
* Text mode prints one model id per line to stdout (a count footer goes to
|
|
48
|
+
* stderr, so `> file` captures only the ids). `--format=json` emits
|
|
49
|
+
* `{ project, connector, provider, count, models }` (plus `bundle` when a bundle
|
|
50
|
+
* is named); each `models[]` entry is passed through verbatim from the provider
|
|
51
|
+
* (the SDK shapes differ — Anthropic vs OpenAI-compatible — so only `id` is
|
|
52
|
+
* guaranteed present). The JSON payload is written with synchronous
|
|
53
|
+
* `fs.writeSync` so `process.exit()` cannot truncate it on a pipe.
|
|
54
|
+
*
|
|
55
|
+
* Exit codes: 0 on a successful list; 1 on a usage error (missing `@<project>`,
|
|
56
|
+
* unregistered project / bundle, connector not found, non-`ai` connector, bad
|
|
57
|
+
* `--format`), a secret-resolution failure, a provider client that exposes no
|
|
58
|
+
* `models.list`, or any transport error from the `models.list` call.
|
|
59
|
+
*
|
|
60
|
+
* @class Models
|
|
61
|
+
* @constructor
|
|
62
|
+
* @param {object} opt - Parsed command-line options
|
|
63
|
+
* @param {object} opt.client - Socket client for terminal output
|
|
64
|
+
* @param {string[]} opt.argv - Full argv array
|
|
65
|
+
* @param {number} [opt.debugPort] - Node.js inspector port
|
|
66
|
+
* @param {boolean} [opt.debugBrkEnabled] - True when --inspect-brk is active
|
|
67
|
+
* @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* // Discover which models a configured connector can serve.
|
|
71
|
+
* // $ gina connector:models claude @myproject
|
|
72
|
+
* // claude-opus-4
|
|
73
|
+
* // claude-sonnet-4
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* // Script a "does the provider offer model X?" check.
|
|
77
|
+
* // $ gina connector:models claude @myproject --format=json \
|
|
78
|
+
* // | jq -e '.models[] | select(.id=="claude-opus-4")' >/dev/null
|
|
79
|
+
*/
|
|
80
|
+
function Models(opt, cmd) {
|
|
81
|
+
var self = { format: 'text' };
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Pure connector-entry resolver — merges shared + bundle `connectors.json`
|
|
85
|
+
* maps (bundle wins) and selects one entry by name; also exposes
|
|
86
|
+
* `isAIConnector(entry, key)`. See `lib/connector-config/src/main.js`.
|
|
87
|
+
*
|
|
88
|
+
* @inner
|
|
89
|
+
* @constant
|
|
90
|
+
*/
|
|
91
|
+
var cfg = lib.connectorConfig;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Secrets resolver — `resolve(entry)` substitutes every `${secret:KEY}`
|
|
95
|
+
* placeholder in place from `process.env` (fail-closed; the missing KEY
|
|
96
|
+
* name is surfaced, never the value). See `lib/secrets/src/main.js`.
|
|
97
|
+
*
|
|
98
|
+
* @inner
|
|
99
|
+
* @constant
|
|
100
|
+
*/
|
|
101
|
+
var secrets = lib.secrets;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Deadline for the live `models.list()` call. A bad endpoint would
|
|
105
|
+
* otherwise hang a CI process; the AI HTTP client carries no connection
|
|
106
|
+
* pool, so `process.exit()` at the end is the only teardown needed.
|
|
107
|
+
*
|
|
108
|
+
* @inner
|
|
109
|
+
* @constant
|
|
110
|
+
* @type {number}
|
|
111
|
+
*/
|
|
112
|
+
var CONNECT_TIMEOUT_MS = 15000;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Parse --format, resolve project + optional bundle via CmdHelper, select
|
|
116
|
+
* the AI connector entry, resolve its secrets, then instantiate the
|
|
117
|
+
* connector directly and list its provider's models.
|
|
118
|
+
*
|
|
119
|
+
* @inner
|
|
120
|
+
* @private
|
|
121
|
+
*/
|
|
122
|
+
var init = function () {
|
|
123
|
+
|
|
124
|
+
new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
|
|
125
|
+
if ( !isCmdConfigured() ) return false;
|
|
126
|
+
|
|
127
|
+
for (var i = 3, len = process.argv.length; i < len; i++) {
|
|
128
|
+
var arg = process.argv[i];
|
|
129
|
+
if ( /^\-\-format\=/.test(arg) ) {
|
|
130
|
+
self.format = arg.split(/\=/)[1] || 'text';
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (self.format !== 'text' && self.format !== 'json') {
|
|
134
|
+
console.error('--format must be `text` or `json` (got `' + self.format + '`)');
|
|
135
|
+
process.exit(1);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Positionals: [0] connector logical name, [1] optional bundle name
|
|
140
|
+
// (same convention as `connector:infer` / `connector:test`).
|
|
141
|
+
var positionals = extractPositionals(process.argv);
|
|
142
|
+
var connectorName = positionals[0] || null;
|
|
143
|
+
var bundleName = positionals[1] || null;
|
|
144
|
+
|
|
145
|
+
if (!connectorName) {
|
|
146
|
+
console.error('Usage: gina connector:models <connector> [<bundle>] @<project> [--format=json]');
|
|
147
|
+
process.exit(1);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if ( typeof(self.projectName) == 'undefined' || self.projectName == null ) {
|
|
152
|
+
console.error('`connector:models` requires `@<project>`. Did you forget `@<project_name>`?');
|
|
153
|
+
process.exit(1);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if ( typeof(self.projects[self.projectName]) == 'undefined' ) {
|
|
158
|
+
console.error('Project @' + self.projectName + ' is not registered. Run `gina project:list` to see registered projects.');
|
|
159
|
+
process.exit(1);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
var projectPath = self.projects[self.projectName].path;
|
|
164
|
+
|
|
165
|
+
// Merged connector entry (shared + bundle, bundle wins). Exits on a
|
|
166
|
+
// bad bundle; returns null when the connector is declared nowhere.
|
|
167
|
+
var entry = resolveConnectorEntry(projectPath, bundleName, connectorName);
|
|
168
|
+
if (!entry) {
|
|
169
|
+
console.error(
|
|
170
|
+
'Connector `' + connectorName + '` not found in '
|
|
171
|
+
+ (bundleName ? ('bundle `' + bundleName + '` (merged with shared) of ') : 'shared config of ')
|
|
172
|
+
+ '@' + self.projectName + '. Run `gina connector:list @' + self.projectName + '` to see configured connectors.'
|
|
173
|
+
);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// models.list is AI-specific — reject any non-`ai` connector cleanly.
|
|
179
|
+
// Pass connectorName so a connector written as just `"ai": {…}` (no
|
|
180
|
+
// `connector` field) is recognised via the key-fallback (matches
|
|
181
|
+
// connector:list / connector:infer / connector:test).
|
|
182
|
+
if (!cfg.isAIConnector(entry, connectorName)) {
|
|
183
|
+
var type = (entry && entry.connector) ? entry.connector : connectorName;
|
|
184
|
+
console.error('Connector `' + connectorName + '` is a `' + type + '` connector, not `ai`. `connector:models` only works with AI connectors.');
|
|
185
|
+
process.exit(1);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Ad-hoc connector-level overrides (NOT written back to disk), mirroring
|
|
190
|
+
// connector:infer. Applied BEFORE secrets.resolve so an --api-key literal
|
|
191
|
+
// bypasses ${secret:} resolution.
|
|
192
|
+
var p = self.params || {};
|
|
193
|
+
if (p['protocol'] && p['protocol'] !== true) entry.protocol = String(p['protocol']);
|
|
194
|
+
if (p['base-url'] && p['base-url'] !== true) entry.baseURL = String(p['base-url']);
|
|
195
|
+
if (p['api-key'] && p['api-key'] !== true) entry.apiKey = String(p['api-key']); // literal — bypasses ${secret:}
|
|
196
|
+
|
|
197
|
+
// Resolve ${secret:KEY} placeholders (apiKey etc.) from process.env.
|
|
198
|
+
// Fail-closed; the missing KEY name is surfaced (never the value).
|
|
199
|
+
try {
|
|
200
|
+
secrets.resolve(entry);
|
|
201
|
+
} catch (secretErr) {
|
|
202
|
+
console.error(
|
|
203
|
+
'[connector:models] secret resolution failed for `' + (secretErr._ginaSecretKey || '<unknown>') + '`. '
|
|
204
|
+
+ 'Set it in this shell (export ' + (secretErr._ginaSecretKey || 'KEY') + '=...), or pass --api-key=<literal>. '
|
|
205
|
+
+ 'A detached CLI sees only its own environment, not secrets injected by a supervisor at bundle start.'
|
|
206
|
+
);
|
|
207
|
+
process.exit(1);
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
listModels(projectPath, connectorName, bundleName, entry);
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Walks `process.argv` from index 3 and returns every non-flag,
|
|
216
|
+
* non-`@<project>` token in order: `[0]` the connector logical name,
|
|
217
|
+
* `[1]` the optional bundle name. CmdHelper already consumes `--` flags
|
|
218
|
+
* and `@<project>` tokens; the remainder are our positionals. Mirrors
|
|
219
|
+
* `connector:infer` / `connector:test`.
|
|
220
|
+
*
|
|
221
|
+
* @inner
|
|
222
|
+
* @private
|
|
223
|
+
* @param {string[]} argv - process.argv
|
|
224
|
+
* @returns {string[]}
|
|
225
|
+
*/
|
|
226
|
+
var extractPositionals = function (argv) {
|
|
227
|
+
var out = [];
|
|
228
|
+
for (var i = 3, len = argv.length; i < len; i++) {
|
|
229
|
+
var tok = argv[i];
|
|
230
|
+
if ( typeof(tok) != 'string' ) continue;
|
|
231
|
+
if ( /^\-\-/.test(tok) ) continue;
|
|
232
|
+
if ( /^\-/.test(tok) ) continue;
|
|
233
|
+
if ( /^\@/.test(tok) ) continue;
|
|
234
|
+
out.push(tok);
|
|
235
|
+
}
|
|
236
|
+
return out;
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Reads a JSON file with tolerance for line and block comments via
|
|
241
|
+
* `requireJSON` (connectors files routinely carry comments). Returns
|
|
242
|
+
* `null` on any parse or I/O error. Mirrors `connector:infer`.
|
|
243
|
+
*
|
|
244
|
+
* @inner
|
|
245
|
+
* @private
|
|
246
|
+
* @param {string} filePath
|
|
247
|
+
* @returns {object|null}
|
|
248
|
+
*/
|
|
249
|
+
var readJsonSafe = function (filePath) {
|
|
250
|
+
try {
|
|
251
|
+
if ( !fs.existsSync(filePath) ) return null;
|
|
252
|
+
return requireJSON(filePath);
|
|
253
|
+
} catch (e) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Loads `<projectPath>/manifest.json` (comment-tolerant). Returns null
|
|
260
|
+
* on failure so the caller can report precisely.
|
|
261
|
+
*
|
|
262
|
+
* @inner
|
|
263
|
+
* @private
|
|
264
|
+
* @param {string} projectPath
|
|
265
|
+
* @returns {object|null}
|
|
266
|
+
*/
|
|
267
|
+
var loadManifest = function (projectPath) {
|
|
268
|
+
return readJsonSafe(_(projectPath + '/manifest.json', true));
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Resolves the connector entry for `connectorName`: reads the shared
|
|
273
|
+
* connectors.json and (when a bundle is supplied) the bundle's, then
|
|
274
|
+
* delegates the merge + select to the shared pure resolver
|
|
275
|
+
* (`lib.connectorConfig.resolve`, bundle wins). The returned object is a
|
|
276
|
+
* fresh copy, safe to mutate in place (overrides + secrets.resolve).
|
|
277
|
+
*
|
|
278
|
+
* Exits the process (code 1) when the named bundle is not registered.
|
|
279
|
+
* Returns `null` when the connector is declared in neither file.
|
|
280
|
+
*
|
|
281
|
+
* @inner
|
|
282
|
+
* @private
|
|
283
|
+
* @param {string} projectPath
|
|
284
|
+
* @param {string|null} bundleName
|
|
285
|
+
* @param {string} connectorName
|
|
286
|
+
* @returns {object|null}
|
|
287
|
+
*/
|
|
288
|
+
var resolveConnectorEntry = function (projectPath, bundleName, connectorName) {
|
|
289
|
+
var sharedJson = readJsonSafe(_(projectPath + '/shared/config/connectors.json', true)) || {};
|
|
290
|
+
|
|
291
|
+
var bundleJson = {};
|
|
292
|
+
if (bundleName) {
|
|
293
|
+
var manifest = loadManifest(projectPath);
|
|
294
|
+
if (!manifest || !manifest.bundles || !manifest.bundles[bundleName]) {
|
|
295
|
+
console.error('Bundle [ ' + bundleName + ' ] is not registered inside `@' + self.projectName + '`.');
|
|
296
|
+
process.exit(1);
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
var bSrc = manifest.bundles[bundleName].src;
|
|
300
|
+
if (bSrc) {
|
|
301
|
+
bundleJson = readJsonSafe(_(projectPath + '/' + bSrc + '/config/connectors.json', true)) || {};
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
return cfg.resolve(sharedJson, bundleJson, connectorName).entry;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Loads the AI connector core (the connector class only — `models.list()`
|
|
310
|
+
* is read off the raw provider client, so the `AI` wrapper is not needed)
|
|
311
|
+
* and points `getPath('project')` at the target project so the provider
|
|
312
|
+
* SDK resolves from its node_modules. Mirrors `connector:infer`'s
|
|
313
|
+
* `loadAiCore` / `connector:test`'s `probeAI` require.
|
|
314
|
+
*
|
|
315
|
+
* @inner
|
|
316
|
+
* @private
|
|
317
|
+
* @param {string} projectPath
|
|
318
|
+
* @returns {{AIConnector: function}|null} The loaded core, or `null` after a
|
|
319
|
+
* fatal load error (the process has already exited).
|
|
320
|
+
*/
|
|
321
|
+
var loadAiCore = function (projectPath) {
|
|
322
|
+
var AIConnector;
|
|
323
|
+
try {
|
|
324
|
+
AIConnector = require('../../../core/connectors/ai/lib/connector');
|
|
325
|
+
} catch (e) {
|
|
326
|
+
console.error('[connector:models] failed to load the AI connector core: ' + e.message);
|
|
327
|
+
process.exit(1);
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
// AIConnector requires the provider SDK from getPath('project')/node_modules.
|
|
331
|
+
setPath('project', projectPath);
|
|
332
|
+
return { AIConnector: AIConnector };
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Instantiates the AI connector directly and lists its provider's models
|
|
337
|
+
* via a single `client.models.list()` call. `onReady` is synchronous and
|
|
338
|
+
* performs no network ping; the network cost is the one `models.list()`
|
|
339
|
+
* GET (a credentialed catalogue read that spends ZERO generation tokens —
|
|
340
|
+
* for `ollama://` it just hits the local server). A capability check emits
|
|
341
|
+
* an honest UNSUPPORTED verdict (never a fabricated empty list) when the
|
|
342
|
+
* client exposes no `models.list`.
|
|
343
|
+
*
|
|
344
|
+
* @inner
|
|
345
|
+
* @private
|
|
346
|
+
* @param {string} projectPath
|
|
347
|
+
* @param {string} connectorName
|
|
348
|
+
* @param {string|null} bundleName
|
|
349
|
+
* @param {object} entry - Resolved connector entry (secrets already substituted)
|
|
350
|
+
*/
|
|
351
|
+
var listModels = function (projectPath, connectorName, bundleName, entry) {
|
|
352
|
+
var core = loadAiCore(projectPath);
|
|
353
|
+
if (!core) return;
|
|
354
|
+
var AIConnector = core.AIConnector;
|
|
355
|
+
|
|
356
|
+
var connector;
|
|
357
|
+
try {
|
|
358
|
+
connector = new AIConnector(entry);
|
|
359
|
+
} catch (buildErr) {
|
|
360
|
+
console.error('[connector:models] ' + ((buildErr && buildErr.message) ? buildErr.message : String(buildErr)));
|
|
361
|
+
process.exit(1);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
connector.onReady(function (err, conn) {
|
|
366
|
+
if (err) {
|
|
367
|
+
console.error('[connector:models] ' + err.message);
|
|
368
|
+
process.exit(1);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
var client = conn && conn.client;
|
|
373
|
+
var provider = conn && conn.provider;
|
|
374
|
+
|
|
375
|
+
// Capability check — honest UNSUPPORTED rather than a fabricated
|
|
376
|
+
// empty list. Every currently-supported provider's SDK client
|
|
377
|
+
// defines models.list, so this is a defensive / forward-looking
|
|
378
|
+
// branch. Mirrors connector:test's inconclusive-`ok:null` guard.
|
|
379
|
+
if (!client || !client.models || typeof client.models.list !== 'function') {
|
|
380
|
+
emitUnsupported(connectorName, bundleName, provider);
|
|
381
|
+
return; // emitUnsupported exits non-zero
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
var settled = false;
|
|
385
|
+
var timer = setTimeout(function () {
|
|
386
|
+
if (settled) return;
|
|
387
|
+
settled = true;
|
|
388
|
+
console.error('[connector:models] models.list timed out after ' + CONNECT_TIMEOUT_MS + 'ms');
|
|
389
|
+
process.exit(1);
|
|
390
|
+
}, CONNECT_TIMEOUT_MS);
|
|
391
|
+
|
|
392
|
+
try {
|
|
393
|
+
Promise.resolve(client.models.list()).then(function (res) {
|
|
394
|
+
if (settled) return;
|
|
395
|
+
settled = true;
|
|
396
|
+
clearTimeout(timer);
|
|
397
|
+
// Both the OpenAI and Anthropic SDKs return a `{ data: [...] }`
|
|
398
|
+
// envelope. The per-entry shape is the SDK's, unmodified —
|
|
399
|
+
// surfaced verbatim (only `id` is guaranteed across providers).
|
|
400
|
+
var models = (res && Array.isArray(res.data)) ? res.data : [];
|
|
401
|
+
emitModels(connectorName, bundleName, provider, models);
|
|
402
|
+
process.exit(0);
|
|
403
|
+
}).catch(function (callErr) {
|
|
404
|
+
if (settled) return;
|
|
405
|
+
settled = true;
|
|
406
|
+
clearTimeout(timer);
|
|
407
|
+
console.error('[connector:models] models.list failed: ' + ((callErr && callErr.message) ? callErr.message : String(callErr)));
|
|
408
|
+
process.exit(1);
|
|
409
|
+
});
|
|
410
|
+
} catch (syncErr) {
|
|
411
|
+
if (settled) return;
|
|
412
|
+
settled = true;
|
|
413
|
+
clearTimeout(timer);
|
|
414
|
+
console.error('[connector:models] models.list failed: ' + ((syncErr && syncErr.message) ? syncErr.message : String(syncErr)));
|
|
415
|
+
process.exit(1);
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* Writes the model list. JSON mode (`--format=json`, matched strictly with
|
|
422
|
+
* `===` so `jsonl`/`json5` fall to text) emits
|
|
423
|
+
* `{ project, connector, provider, count, models }` (+ `bundle` when named);
|
|
424
|
+
* each `models[]` entry is passed through verbatim from the provider SDK.
|
|
425
|
+
* Text mode prints one model `id` per line to stdout (so `> file` captures
|
|
426
|
+
* only the ids) and a count footer to stderr.
|
|
427
|
+
*
|
|
428
|
+
* Both paths use synchronous `fs.writeSync` (fd 1 / fd 2) rather than the
|
|
429
|
+
* async `process.stdout` / `process.stderr` writers, so the output is not
|
|
430
|
+
* truncated by the `process.exit(0)` that {@link listModels} fires on the
|
|
431
|
+
* next line (`process.stdout` is ASYNCHRONOUS on a pipe — `| jq`, `$(…)`,
|
|
432
|
+
* CI — and `process.exit()` tears the process down without draining its
|
|
433
|
+
* buffer; the framework's boot-exit-flush rule). Mirrors
|
|
434
|
+
* `connector:infer`'s `emitResult`.
|
|
435
|
+
*
|
|
436
|
+
* @inner
|
|
437
|
+
* @private
|
|
438
|
+
* @param {string} connectorName
|
|
439
|
+
* @param {string|null} bundleName
|
|
440
|
+
* @param {string|null} provider - Provider scheme (e.g. 'anthropic', 'ollama')
|
|
441
|
+
* @param {object[]} models - The provider's model-entry array (passthrough)
|
|
442
|
+
*/
|
|
443
|
+
var emitModels = function (connectorName, bundleName, provider, models) {
|
|
444
|
+
if ( self.format === 'json' ) {
|
|
445
|
+
var payload = {
|
|
446
|
+
project : self.projectName,
|
|
447
|
+
connector : connectorName,
|
|
448
|
+
provider : provider || null,
|
|
449
|
+
count : models.length,
|
|
450
|
+
models : models
|
|
451
|
+
};
|
|
452
|
+
if (bundleName) payload.bundle = bundleName;
|
|
453
|
+
fs.writeSync(1, JSON.stringify(payload));
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
// Text: one model id per line on stdout (grep/pipe-friendly).
|
|
457
|
+
var lines = '';
|
|
458
|
+
for (var i = 0; i < models.length; i++) {
|
|
459
|
+
var id = (models[i] && models[i].id != null) ? String(models[i].id) : '<unknown>';
|
|
460
|
+
lines += id + '\n';
|
|
461
|
+
}
|
|
462
|
+
if (lines) fs.writeSync(1, lines);
|
|
463
|
+
fs.writeSync(2, '— ' + models.length + ' model' + (models.length === 1 ? '' : 's')
|
|
464
|
+
+ ' via `' + connectorName + '`' + (provider ? (' (' + provider + ')') : '') + '\n');
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Reports a connector whose provider client exposes no `models.list` as
|
|
469
|
+
* UNSUPPORTED and exits non-zero — an honest "this provider cannot enumerate
|
|
470
|
+
* models", never a fabricated empty list. JSON mode emits
|
|
471
|
+
* `{ project, connector, provider, supported:false, models:null, reason }`
|
|
472
|
+
* (+ `bundle` when named) on stdout via `fs.writeSync`; text mode writes the
|
|
473
|
+
* reason to stderr. Either way the exit code is 1, distinct from a
|
|
474
|
+
* successful empty list (exit 0, `models:[]`).
|
|
475
|
+
*
|
|
476
|
+
* @inner
|
|
477
|
+
* @private
|
|
478
|
+
* @param {string} connectorName
|
|
479
|
+
* @param {string|null} bundleName
|
|
480
|
+
* @param {string|null} provider
|
|
481
|
+
*/
|
|
482
|
+
var emitUnsupported = function (connectorName, bundleName, provider) {
|
|
483
|
+
if ( self.format === 'json' ) {
|
|
484
|
+
var payload = {
|
|
485
|
+
project : self.projectName,
|
|
486
|
+
connector : connectorName,
|
|
487
|
+
provider : provider || null,
|
|
488
|
+
supported : false,
|
|
489
|
+
models : null,
|
|
490
|
+
reason : 'provider client exposes no models.list'
|
|
491
|
+
};
|
|
492
|
+
if (bundleName) payload.bundle = bundleName;
|
|
493
|
+
fs.writeSync(1, JSON.stringify(payload));
|
|
494
|
+
process.exit(1);
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
console.error('[connector:models] connector `' + connectorName + '`'
|
|
498
|
+
+ (provider ? (' (' + provider + ')') : '')
|
|
499
|
+
+ ' exposes no models.list — this provider client does not support model enumeration.');
|
|
500
|
+
process.exit(1);
|
|
501
|
+
};
|
|
502
|
+
|
|
503
|
+
init();
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
module.exports = Models;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
var console = lib.logger;
|
|
2
|
+
var fs = require('fs');
|
|
3
|
+
var path = require('path');
|
|
4
|
+
/**
|
|
5
|
+
* @module gina/lib/cmd/framework/help
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Prints the Gina CLI help.
|
|
9
|
+
*
|
|
10
|
+
* Handles `gina --help`, `gina -h`, and `gina help [<group>]` — all aliased to
|
|
11
|
+
* `framework:help` (see `lib/cmd/aliases.json`). With no group it prints the
|
|
12
|
+
* top-level command reference at `lib/cmd/framework/help.txt`; with a known
|
|
13
|
+
* group (e.g. `gina help bundle`) it prints that group's `lib/cmd/<group>/help.txt`,
|
|
14
|
+
* falling back to the framework help for an unknown group.
|
|
15
|
+
*
|
|
16
|
+
* Opening a Gina directory in the OS file manager is a separate concern handled
|
|
17
|
+
* by the `open` command (`gina open <key>` / `gina -o <key>` — see `./open`).
|
|
18
|
+
*
|
|
19
|
+
* Usage:
|
|
20
|
+
* gina --help | -h
|
|
21
|
+
* gina help [<group>]
|
|
22
|
+
*
|
|
23
|
+
* @class Help
|
|
24
|
+
* @constructor
|
|
25
|
+
* @param {object} opt - Parsed command-line options (unused; help reads help.txt).
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* $ gina --help
|
|
29
|
+
* $ gina -h
|
|
30
|
+
* $ gina help
|
|
31
|
+
* $ gina help bundle
|
|
32
|
+
*/
|
|
33
|
+
function Help(opt) {
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Resolves which help.txt to print. `gina help <group>` targets
|
|
37
|
+
* `lib/cmd/<group>/help.txt` when it exists; otherwise the framework help.
|
|
38
|
+
*
|
|
39
|
+
* The group is validated against a strict `[a-z][a-z0-9-]*` pattern (no `.`
|
|
40
|
+
* or path separators) so it can never traverse outside `lib/cmd`; the
|
|
41
|
+
* containment check is belt-and-suspenders.
|
|
42
|
+
*
|
|
43
|
+
* @inner
|
|
44
|
+
* @private
|
|
45
|
+
* @returns {string} Absolute path to the help.txt to print.
|
|
46
|
+
*/
|
|
47
|
+
var resolveHelpFile = function() {
|
|
48
|
+
var frameworkHelp = path.join(__dirname, 'help.txt');
|
|
49
|
+
var group = process.argv[3];
|
|
50
|
+
|
|
51
|
+
if ( group && /^[a-z][a-z0-9-]*$/.test(group) ) {
|
|
52
|
+
var cmdDir = path.resolve(__dirname, '..'); // lib/cmd
|
|
53
|
+
var candidate = path.join(cmdDir, group, 'help.txt');
|
|
54
|
+
|
|
55
|
+
if ( candidate.indexOf(cmdDir + path.sep) === 0 && fs.existsSync(candidate) ) {
|
|
56
|
+
return candidate;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return frameworkHelp;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Reads and prints the resolved help.txt to stdout, then exits.
|
|
65
|
+
* @inner
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
var init = function() {
|
|
69
|
+
var file = resolveHelpFile();
|
|
70
|
+
|
|
71
|
+
if ( !fs.existsSync(file) ) {
|
|
72
|
+
console.error('gina: no CLI help available at the moment. Try `man gina`.');
|
|
73
|
+
process.exit(1);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
try {
|
|
78
|
+
console.log( '\n' + fs.readFileSync(file, 'utf8') );
|
|
79
|
+
} catch (err) {
|
|
80
|
+
console.error( err.stack || err );
|
|
81
|
+
process.exit(1);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
process.exit(0);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
init();
|
|
89
|
+
};
|
|
90
|
+
module.exports = Help;
|
|
@@ -156,6 +156,37 @@ function Initialize(opt) {
|
|
|
156
156
|
var filename ='/cmd/' + opt.task.topic + '/' + opt.task.action + '.js'
|
|
157
157
|
var path = getPath('gina').lib + filename;
|
|
158
158
|
|
|
159
|
+
// Unknown command → print a clean, actionable message instead of a raw
|
|
160
|
+
// `Cannot find module` stack. `bin/cli` already rejects an unknown GROUP
|
|
161
|
+
// cleanly; this covers a known group with an unknown ACTION — e.g.
|
|
162
|
+
// `gina framework:connector`, `gina connector` (auto-prefixed to the same
|
|
163
|
+
// `framework:connector`), or `gina -V` (→ `framework:-V`). A genuine error
|
|
164
|
+
// thrown from inside a real handler still falls through to the try/catch
|
|
165
|
+
// below and keeps its stack for debugging.
|
|
166
|
+
if ( !fs.existsSync(path) ) {
|
|
167
|
+
var cmdName = opt.task.topic + ':' + opt.task.action;
|
|
168
|
+
var groupHelp = getPath('gina').lib + '/cmd/' + opt.task.action + '/help.txt';
|
|
169
|
+
var lines = [ "gina: '" + cmdName + "' is not a valid command." ];
|
|
170
|
+
|
|
171
|
+
// Did-you-mean: the unknown action is itself a real command group
|
|
172
|
+
// (same test `gina help <group>` uses). Covers the `connector` case.
|
|
173
|
+
if ( /^[a-z][a-z0-9-]*$/.test(opt.task.action) && fs.existsSync(groupHelp) ) {
|
|
174
|
+
lines.push('');
|
|
175
|
+
lines.push("'" + opt.task.action + "' is a command group. Try: gina help " + opt.task.action);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
lines.push('');
|
|
179
|
+
lines.push("Run 'gina help' for all commands, or 'gina help " + opt.task.topic + "' for the " + opt.task.topic + " group.");
|
|
180
|
+
|
|
181
|
+
var message = lines.join('\n');
|
|
182
|
+
console.error(message);
|
|
183
|
+
if (opt.client) {
|
|
184
|
+
opt.client.write(message + '\n');
|
|
185
|
+
}
|
|
186
|
+
process.exit(1);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
159
190
|
try {
|
|
160
191
|
if ( GINA_ENV_IS_DEV || process.env.NODE_ENV_IS_DEV ) {
|
|
161
192
|
delete require.cache[require.resolve(path)];
|
|
@@ -1569,7 +1569,6 @@ function CmdHelper(cmd, client, debug) {
|
|
|
1569
1569
|
, file = _( __dirname +'/'+ taskGroup +'/help.txt', true )
|
|
1570
1570
|
, errMsg = 'No help available for `'+ taskGroup +'` command line at the moment. Please try again on the next release';
|
|
1571
1571
|
|
|
1572
|
-
console.log('file ', file);
|
|
1573
1572
|
if ( !fs.existsSync(file) ) {
|
|
1574
1573
|
|
|
1575
1574
|
console.error(errMsg);
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
1st method
|
|
11
11
|
----------
|
|
12
|
-
$ gina project:add @<project_name> [
|
|
12
|
+
$ gina project:add @<project_name> [ --path=/var/www/<project_name> ] (if no path given, will take the current)
|
|
13
13
|
|
|
14
14
|
where `/var/www/<project_name>` is the destination path
|
|
15
15
|
NB.: `--path` can also be a relative path like `--path=./` or `--path=./<project_name>`
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
This command line also supports relative path like `--path=./<project_name>`
|
|
19
19
|
|
|
20
|
-
$ gina project:add @<project_name> [
|
|
20
|
+
$ gina project:add @<project_name> [ --path=/var/www/<project_name> ][ --homedir=~/.<project_name>/v2 ]
|
|
21
21
|
where `~/.<project_name>/v2` is the project homedir path
|
|
22
22
|
If you do not specifiy a `.<project_name>` for the `--homedir` argument , gina will reuse the one you used with `@<project_name>`
|
|
23
23
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
[ Import an existing project ]
|
|
31
31
|
Works just like `project:add` task. It will also do some extra checking.
|
|
32
32
|
|
|
33
|
-
$ gina project:import @<project_name> [
|
|
33
|
+
$ gina project:import @<project_name> [ --path=/var/www/<project_name> ] (if no path given, will take the current)
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
[ List projects ]
|