@squadrules/mcp 4.8.6
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/LICENSE +22 -0
- package/README.md +350 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/bootstrap.d.ts +10 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +61 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/cli/api-client.d.ts +112 -0
- package/dist/cli/api-client.d.ts.map +1 -0
- package/dist/cli/api-client.js +259 -0
- package/dist/cli/api-client.js.map +1 -0
- package/dist/cli/auth-error.d.ts +19 -0
- package/dist/cli/auth-error.d.ts.map +1 -0
- package/dist/cli/auth-error.js +123 -0
- package/dist/cli/auth-error.js.map +1 -0
- package/dist/cli/client-factory.d.ts +14 -0
- package/dist/cli/client-factory.d.ts.map +1 -0
- package/dist/cli/client-factory.js +53 -0
- package/dist/cli/client-factory.js.map +1 -0
- package/dist/cli/commands/attest.d.ts +6 -0
- package/dist/cli/commands/attest.d.ts.map +1 -0
- package/dist/cli/commands/attest.js +55 -0
- package/dist/cli/commands/attest.js.map +1 -0
- package/dist/cli/commands/begin.d.ts +6 -0
- package/dist/cli/commands/begin.d.ts.map +1 -0
- package/dist/cli/commands/begin.js +27 -0
- package/dist/cli/commands/begin.js.map +1 -0
- package/dist/cli/commands/cli-train.d.ts +6 -0
- package/dist/cli/commands/cli-train.d.ts.map +1 -0
- package/dist/cli/commands/cli-train.js +276 -0
- package/dist/cli/commands/cli-train.js.map +1 -0
- package/dist/cli/commands/delete-metadata.d.ts +3 -0
- package/dist/cli/commands/delete-metadata.d.ts.map +1 -0
- package/dist/cli/commands/delete-metadata.js +3 -0
- package/dist/cli/commands/delete-metadata.js.map +1 -0
- package/dist/cli/commands/delete.d.ts +6 -0
- package/dist/cli/commands/delete.d.ts.map +1 -0
- package/dist/cli/commands/delete.js +24 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/export.d.ts +21 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +109 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/login.d.ts +16 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +226 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +6 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +17 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/search.d.ts +6 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +25 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +18 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +165 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/spaces.d.ts +6 -0
- package/dist/cli/commands/spaces.d.ts.map +1 -0
- package/dist/cli/commands/spaces.js +25 -0
- package/dist/cli/commands/spaces.js.map +1 -0
- package/dist/cli/commands/token.d.ts +6 -0
- package/dist/cli/commands/token.d.ts.map +1 -0
- package/dist/cli/commands/token.js +45 -0
- package/dist/cli/commands/token.js.map +1 -0
- package/dist/cli/commands/update.d.ts +6 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +88 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/config-file-internals.d.ts +23 -0
- package/dist/cli/config-file-internals.d.ts.map +1 -0
- package/dist/cli/config-file-internals.js +45 -0
- package/dist/cli/config-file-internals.js.map +1 -0
- package/dist/cli/config-file-write.d.ts +10 -0
- package/dist/cli/config-file-write.d.ts.map +1 -0
- package/dist/cli/config-file-write.js +168 -0
- package/dist/cli/config-file-write.js.map +1 -0
- package/dist/cli/config-file.d.ts +30 -0
- package/dist/cli/config-file.d.ts.map +1 -0
- package/dist/cli/config-file.js +200 -0
- package/dist/cli/config-file.js.map +1 -0
- package/dist/cli/config.d.ts +13 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +24 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/download-export-ref.d.ts +7 -0
- package/dist/cli/download-export-ref.d.ts.map +1 -0
- package/dist/cli/download-export-ref.js +19 -0
- package/dist/cli/download-export-ref.js.map +1 -0
- package/dist/cli/fetch-error.d.ts +18 -0
- package/dist/cli/fetch-error.d.ts.map +1 -0
- package/dist/cli/fetch-error.js +38 -0
- package/dist/cli/fetch-error.js.map +1 -0
- package/dist/cli/format-next-call.d.ts +2 -0
- package/dist/cli/format-next-call.d.ts.map +1 -0
- package/dist/cli/format-next-call.js +63 -0
- package/dist/cli/format-next-call.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/keyring.d.ts +73 -0
- package/dist/cli/keyring.d.ts.map +1 -0
- package/dist/cli/keyring.js +257 -0
- package/dist/cli/keyring.js.map +1 -0
- package/dist/cli/oauth-refresh.d.ts +32 -0
- package/dist/cli/oauth-refresh.d.ts.map +1 -0
- package/dist/cli/oauth-refresh.js +91 -0
- package/dist/cli/oauth-refresh.js.map +1 -0
- package/dist/cli/output.d.ts +10 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +23 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/program.d.ts +3 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +64 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/resolve-api-base.d.ts +7 -0
- package/dist/cli/resolve-api-base.d.ts.map +1 -0
- package/dist/cli/resolve-api-base.js +14 -0
- package/dist/cli/resolve-api-base.js.map +1 -0
- package/dist/cli/rewrite-login-url.d.ts +7 -0
- package/dist/cli/rewrite-login-url.d.ts.map +1 -0
- package/dist/cli/rewrite-login-url.js +34 -0
- package/dist/cli/rewrite-login-url.js.map +1 -0
- package/dist/cli/safe-http-url.d.ts +8 -0
- package/dist/cli/safe-http-url.d.ts.map +1 -0
- package/dist/cli/safe-http-url.js +28 -0
- package/dist/cli/safe-http-url.js.map +1 -0
- package/dist/cli/skill-zip-local-write.d.ts +22 -0
- package/dist/cli/skill-zip-local-write.d.ts.map +1 -0
- package/dist/cli/skill-zip-local-write.js +69 -0
- package/dist/cli/skill-zip-local-write.js.map +1 -0
- package/dist/cli/upload-guards.d.ts +7 -0
- package/dist/cli/upload-guards.d.ts.map +1 -0
- package/dist/cli/upload-guards.js +96 -0
- package/dist/cli/upload-guards.js.map +1 -0
- package/dist/config/adapter-markdown-size-limits.d.ts +20 -0
- package/dist/config/adapter-markdown-size-limits.d.ts.map +1 -0
- package/dist/config/adapter-markdown-size-limits.js +26 -0
- package/dist/config/adapter-markdown-size-limits.js.map +1 -0
- package/dist/config/env-alias.d.ts +56 -0
- package/dist/config/env-alias.d.ts.map +1 -0
- package/dist/config/env-alias.js +112 -0
- package/dist/config/env-alias.js.map +1 -0
- package/dist/config/export-download-settings.d.ts +4 -0
- package/dist/config/export-download-settings.d.ts.map +1 -0
- package/dist/config/export-download-settings.js +45 -0
- package/dist/config/export-download-settings.js.map +1 -0
- package/dist/config/export-zip-settings.d.ts +16 -0
- package/dist/config/export-zip-settings.d.ts.map +1 -0
- package/dist/config/export-zip-settings.js +28 -0
- package/dist/config/export-zip-settings.js.map +1 -0
- package/dist/config.d.ts +165 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +321 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/builtin-search-meta.d.ts +14 -0
- package/dist/constants/builtin-search-meta.d.ts.map +1 -0
- package/dist/constants/builtin-search-meta.js +32 -0
- package/dist/constants/builtin-search-meta.js.map +1 -0
- package/dist/embed-docs/mem/README.md +140 -0
- package/dist/embed-docs/mem/adapter-migration.md +202 -0
- package/dist/embed-docs/mem/bulk-insert-adapters-via-cli.md +152 -0
- package/dist/embed-docs/mem/challenge-type-guide.md +278 -0
- package/dist/embed-docs/mem/create-new-protocol.md +346 -0
- package/dist/embed-docs/mem/phase-critic-guide.md +199 -0
- package/dist/embed-docs/mem/phase-critic.md +210 -0
- package/dist/embed-docs/mem/protocol-linking-guide.md +231 -0
- package/dist/embed-docs/mem/refine-search.md +93 -0
- package/dist/embed-docs/mem/skill-format-guide.md +280 -0
- package/dist/http/bearer-validate.d.ts +25 -0
- package/dist/http/bearer-validate.d.ts.map +1 -0
- package/dist/http/bearer-validate.js +173 -0
- package/dist/http/bearer-validate.js.map +1 -0
- package/dist/http/export-skill-zip-http.d.ts +5 -0
- package/dist/http/export-skill-zip-http.d.ts.map +1 -0
- package/dist/http/export-skill-zip-http.js +29 -0
- package/dist/http/export-skill-zip-http.js.map +1 -0
- package/dist/http/http-api-attest.d.ts +7 -0
- package/dist/http/http-api-attest.d.ts.map +1 -0
- package/dist/http/http-api-attest.js +33 -0
- package/dist/http/http-api-attest.js.map +1 -0
- package/dist/http/http-api-begin-step.d.ts +8 -0
- package/dist/http/http-api-begin-step.d.ts.map +1 -0
- package/dist/http/http-api-begin-step.js +33 -0
- package/dist/http/http-api-begin-step.js.map +1 -0
- package/dist/http/http-api-begin.d.ts +9 -0
- package/dist/http/http-api-begin.d.ts.map +1 -0
- package/dist/http/http-api-begin.js +34 -0
- package/dist/http/http-api-begin.js.map +1 -0
- package/dist/http/http-api-delete.d.ts +7 -0
- package/dist/http/http-api-delete.d.ts.map +1 -0
- package/dist/http/http-api-delete.js +33 -0
- package/dist/http/http-api-delete.js.map +1 -0
- package/dist/http/http-api-dump.d.ts +8 -0
- package/dist/http/http-api-dump.d.ts.map +1 -0
- package/dist/http/http-api-dump.js +50 -0
- package/dist/http/http-api-dump.js.map +1 -0
- package/dist/http/http-api-me.d.ts +7 -0
- package/dist/http/http-api-me.d.ts.map +1 -0
- package/dist/http/http-api-me.js +43 -0
- package/dist/http/http-api-me.js.map +1 -0
- package/dist/http/http-api-routes.d.ts +13 -0
- package/dist/http/http-api-routes.d.ts.map +1 -0
- package/dist/http/http-api-routes.js +32 -0
- package/dist/http/http-api-routes.js.map +1 -0
- package/dist/http/http-api-snapshot.d.ts +4 -0
- package/dist/http/http-api-snapshot.d.ts.map +1 -0
- package/dist/http/http-api-snapshot.js +35 -0
- package/dist/http/http-api-snapshot.js.map +1 -0
- package/dist/http/http-api-spaces.d.ts +8 -0
- package/dist/http/http-api-spaces.d.ts.map +1 -0
- package/dist/http/http-api-spaces.js +28 -0
- package/dist/http/http-api-spaces.js.map +1 -0
- package/dist/http/http-api-train-json.d.ts +8 -0
- package/dist/http/http-api-train-json.d.ts.map +1 -0
- package/dist/http/http-api-train-json.js +153 -0
- package/dist/http/http-api-train-json.js.map +1 -0
- package/dist/http/http-api-train-raw.d.ts +8 -0
- package/dist/http/http-api-train-raw.d.ts.map +1 -0
- package/dist/http/http-api-train-raw.js +199 -0
- package/dist/http/http-api-train-raw.js.map +1 -0
- package/dist/http/http-api-update.d.ts +7 -0
- package/dist/http/http-api-update.d.ts.map +1 -0
- package/dist/http/http-api-update.js +33 -0
- package/dist/http/http-api-update.js.map +1 -0
- package/dist/http/http-auth-callback.d.ts +12 -0
- package/dist/http/http-auth-callback.d.ts.map +1 -0
- package/dist/http/http-auth-callback.js +175 -0
- package/dist/http/http-auth-callback.js.map +1 -0
- package/dist/http/http-auth-middleware.d.ts +29 -0
- package/dist/http/http-auth-middleware.d.ts.map +1 -0
- package/dist/http/http-auth-middleware.js +285 -0
- package/dist/http/http-auth-middleware.js.map +1 -0
- package/dist/http/http-auth-oidc-redirect.d.ts +24 -0
- package/dist/http/http-auth-oidc-redirect.d.ts.map +1 -0
- package/dist/http/http-auth-oidc-redirect.js +80 -0
- package/dist/http/http-auth-oidc-redirect.js.map +1 -0
- package/dist/http/http-client-registration-proxy.d.ts +3 -0
- package/dist/http/http-client-registration-proxy.d.ts.map +1 -0
- package/dist/http/http-client-registration-proxy.js +146 -0
- package/dist/http/http-client-registration-proxy.js.map +1 -0
- package/dist/http/http-error-handlers.d.ts +7 -0
- package/dist/http/http-error-handlers.d.ts.map +1 -0
- package/dist/http/http-error-handlers.js +50 -0
- package/dist/http/http-error-handlers.js.map +1 -0
- package/dist/http/http-export-artifact-download-routes.d.ts +4 -0
- package/dist/http/http-export-artifact-download-routes.d.ts.map +1 -0
- package/dist/http/http-export-artifact-download-routes.js +49 -0
- package/dist/http/http-export-artifact-download-routes.js.map +1 -0
- package/dist/http/http-export-download-routes.d.ts +5 -0
- package/dist/http/http-export-download-routes.d.ts.map +1 -0
- package/dist/http/http-export-download-routes.js +35 -0
- package/dist/http/http-export-download-routes.js.map +1 -0
- package/dist/http/http-health-routes.d.ts +9 -0
- package/dist/http/http-health-routes.d.ts.map +1 -0
- package/dist/http/http-health-routes.js +106 -0
- package/dist/http/http-health-routes.js.map +1 -0
- package/dist/http/http-mcp-cors.d.ts +3 -0
- package/dist/http/http-mcp-cors.d.ts.map +1 -0
- package/dist/http/http-mcp-cors.js +27 -0
- package/dist/http/http-mcp-cors.js.map +1 -0
- package/dist/http/http-mcp-handler.d.ts +19 -0
- package/dist/http/http-mcp-handler.d.ts.map +1 -0
- package/dist/http/http-mcp-handler.js +291 -0
- package/dist/http/http-mcp-handler.js.map +1 -0
- package/dist/http/http-metrics-middleware.d.ts +7 -0
- package/dist/http/http-metrics-middleware.d.ts.map +1 -0
- package/dist/http/http-metrics-middleware.js +56 -0
- package/dist/http/http-metrics-middleware.js.map +1 -0
- package/dist/http/http-route-errors.d.ts +3 -0
- package/dist/http/http-route-errors.d.ts.map +1 -0
- package/dist/http/http-route-errors.js +26 -0
- package/dist/http/http-route-errors.js.map +1 -0
- package/dist/http/http-server-config.d.ts +13 -0
- package/dist/http/http-server-config.d.ts.map +1 -0
- package/dist/http/http-server-config.js +67 -0
- package/dist/http/http-server-config.js.map +1 -0
- package/dist/http/http-server-startup.d.ts +9 -0
- package/dist/http/http-server-startup.d.ts.map +1 -0
- package/dist/http/http-server-startup.js +26 -0
- package/dist/http/http-server-startup.js.map +1 -0
- package/dist/http/http-server.d.ts +4 -0
- package/dist/http/http-server.d.ts.map +1 -0
- package/dist/http/http-server.js +47 -0
- package/dist/http/http-server.js.map +1 -0
- package/dist/http/http-ui-static.d.ts +9 -0
- package/dist/http/http-ui-static.d.ts.map +1 -0
- package/dist/http/http-ui-static.js +88 -0
- package/dist/http/http-ui-static.js.map +1 -0
- package/dist/http/http-well-known.d.ts +23 -0
- package/dist/http/http-well-known.d.ts.map +1 -0
- package/dist/http/http-well-known.js +167 -0
- package/dist/http/http-well-known.js.map +1 -0
- package/dist/http/http-www-authenticate.d.ts +11 -0
- package/dist/http/http-www-authenticate.d.ts.map +1 -0
- package/dist/http/http-www-authenticate.js +42 -0
- package/dist/http/http-www-authenticate.js.map +1 -0
- package/dist/http/mcp-audit-emit.d.ts +30 -0
- package/dist/http/mcp-audit-emit.d.ts.map +1 -0
- package/dist/http/mcp-audit-emit.js +98 -0
- package/dist/http/mcp-audit-emit.js.map +1 -0
- package/dist/http/mcp-ui-offerings-auth-jsonrpc.d.ts +10 -0
- package/dist/http/mcp-ui-offerings-auth-jsonrpc.d.ts.map +1 -0
- package/dist/http/mcp-ui-offerings-auth-jsonrpc.js +28 -0
- package/dist/http/mcp-ui-offerings-auth-jsonrpc.js.map +1 -0
- package/dist/http/oidc-profile-claims.d.ts +77 -0
- package/dist/http/oidc-profile-claims.d.ts.map +1 -0
- package/dist/http/oidc-profile-claims.js +257 -0
- package/dist/http/oidc-profile-claims.js.map +1 -0
- package/dist/http/oidc-scopes.d.ts +3 -0
- package/dist/http/oidc-scopes.d.ts.map +1 -0
- package/dist/http/oidc-scopes.js +21 -0
- package/dist/http/oidc-scopes.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +159 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-apps/activate-widget-html.d.ts +6 -0
- package/dist/mcp-apps/activate-widget-html.d.ts.map +1 -0
- package/dist/mcp-apps/activate-widget-html.js +29 -0
- package/dist/mcp-apps/activate-widget-html.js.map +1 -0
- package/dist/mcp-apps/activate-widget-inline-css.d.ts +2 -0
- package/dist/mcp-apps/activate-widget-inline-css.d.ts.map +1 -0
- package/dist/mcp-apps/activate-widget-inline-css.js +185 -0
- package/dist/mcp-apps/activate-widget-inline-css.js.map +1 -0
- package/dist/mcp-apps/activate-widget-inline-script.d.ts +2 -0
- package/dist/mcp-apps/activate-widget-inline-script.d.ts.map +1 -0
- package/dist/mcp-apps/activate-widget-inline-script.js +452 -0
- package/dist/mcp-apps/activate-widget-inline-script.js.map +1 -0
- package/dist/mcp-apps/forward-widget-html.d.ts +6 -0
- package/dist/mcp-apps/forward-widget-html.d.ts.map +1 -0
- package/dist/mcp-apps/forward-widget-html.js +34 -0
- package/dist/mcp-apps/forward-widget-html.js.map +1 -0
- package/dist/mcp-apps/forward-widget-inline-css.d.ts +2 -0
- package/dist/mcp-apps/forward-widget-inline-css.d.ts.map +1 -0
- package/dist/mcp-apps/forward-widget-inline-css.js +170 -0
- package/dist/mcp-apps/forward-widget-inline-css.js.map +1 -0
- package/dist/mcp-apps/forward-widget-inline-script.d.ts +2 -0
- package/dist/mcp-apps/forward-widget-inline-script.d.ts.map +1 -0
- package/dist/mcp-apps/forward-widget-inline-script.js +520 -0
- package/dist/mcp-apps/forward-widget-inline-script.js.map +1 -0
- package/dist/mcp-apps/kairos-logo-embedded.d.ts +3 -0
- package/dist/mcp-apps/kairos-logo-embedded.d.ts.map +1 -0
- package/dist/mcp-apps/kairos-logo-embedded.js +3 -0
- package/dist/mcp-apps/kairos-logo-embedded.js.map +1 -0
- package/dist/mcp-apps/kairos-server-ui-capability.d.ts +12 -0
- package/dist/mcp-apps/kairos-server-ui-capability.d.ts.map +1 -0
- package/dist/mcp-apps/kairos-server-ui-capability.js +13 -0
- package/dist/mcp-apps/kairos-server-ui-capability.js.map +1 -0
- package/dist/mcp-apps/kairos-ui-constants.d.ts +97 -0
- package/dist/mcp-apps/kairos-ui-constants.d.ts.map +1 -0
- package/dist/mcp-apps/kairos-ui-constants.js +100 -0
- package/dist/mcp-apps/kairos-ui-constants.js.map +1 -0
- package/dist/mcp-apps/list-offerings-for-ui.d.ts +42 -0
- package/dist/mcp-apps/list-offerings-for-ui.d.ts.map +1 -0
- package/dist/mcp-apps/list-offerings-for-ui.js +214 -0
- package/dist/mcp-apps/list-offerings-for-ui.js.map +1 -0
- package/dist/mcp-apps/mcp-widget-chrome-inline-css.d.ts +6 -0
- package/dist/mcp-apps/mcp-widget-chrome-inline-css.d.ts.map +1 -0
- package/dist/mcp-apps/mcp-widget-chrome-inline-css.js +99 -0
- package/dist/mcp-apps/mcp-widget-chrome-inline-css.js.map +1 -0
- package/dist/mcp-apps/mcp-widget-presentation-inject.d.ts +5 -0
- package/dist/mcp-apps/mcp-widget-presentation-inject.d.ts.map +1 -0
- package/dist/mcp-apps/mcp-widget-presentation-inject.js +8 -0
- package/dist/mcp-apps/mcp-widget-presentation-inject.js.map +1 -0
- package/dist/mcp-apps/register-activate-ui-resources.d.ts +4 -0
- package/dist/mcp-apps/register-activate-ui-resources.d.ts.map +1 -0
- package/dist/mcp-apps/register-activate-ui-resources.js +33 -0
- package/dist/mcp-apps/register-activate-ui-resources.js.map +1 -0
- package/dist/mcp-apps/register-forward-ui-resources.d.ts +4 -0
- package/dist/mcp-apps/register-forward-ui-resources.d.ts.map +1 -0
- package/dist/mcp-apps/register-forward-ui-resources.js +33 -0
- package/dist/mcp-apps/register-forward-ui-resources.js.map +1 -0
- package/dist/mcp-apps/register-spaces-ui-resources.d.ts +4 -0
- package/dist/mcp-apps/register-spaces-ui-resources.d.ts.map +1 -0
- package/dist/mcp-apps/register-spaces-ui-resources.js +33 -0
- package/dist/mcp-apps/register-spaces-ui-resources.js.map +1 -0
- package/dist/mcp-apps/spaces-mcp-app-widget-html.d.ts +14 -0
- package/dist/mcp-apps/spaces-mcp-app-widget-html.d.ts.map +1 -0
- package/dist/mcp-apps/spaces-mcp-app-widget-html.js +409 -0
- package/dist/mcp-apps/spaces-mcp-app-widget-html.js.map +1 -0
- package/dist/mcp-apps/spaces-widget-html.d.ts +22 -0
- package/dist/mcp-apps/spaces-widget-html.d.ts.map +1 -0
- package/dist/mcp-apps/spaces-widget-html.js +65 -0
- package/dist/mcp-apps/spaces-widget-html.js.map +1 -0
- package/dist/mcp-apps/widget-inline-minify.d.ts +4 -0
- package/dist/mcp-apps/widget-inline-minify.d.ts.map +1 -0
- package/dist/mcp-apps/widget-inline-minify.js +16 -0
- package/dist/mcp-apps/widget-inline-minify.js.map +1 -0
- package/dist/me-response.d.ts +19 -0
- package/dist/me-response.d.ts.map +1 -0
- package/dist/me-response.js +2 -0
- package/dist/me-response.js.map +1 -0
- package/dist/metrics-server.d.ts +14 -0
- package/dist/metrics-server.d.ts.map +1 -0
- package/dist/metrics-server.js +41 -0
- package/dist/metrics-server.js.map +1 -0
- package/dist/resources/docs-resources.d.ts +2 -0
- package/dist/resources/docs-resources.d.ts.map +1 -0
- package/dist/resources/docs-resources.js +47 -0
- package/dist/resources/docs-resources.js.map +1 -0
- package/dist/resources/embedded-mcp-resources.d.ts +85 -0
- package/dist/resources/embedded-mcp-resources.d.ts.map +1 -0
- package/dist/resources/embedded-mcp-resources.js +154 -0
- package/dist/resources/embedded-mcp-resources.js.map +1 -0
- package/dist/resources/mem-dir-utils.d.ts +6 -0
- package/dist/resources/mem-dir-utils.d.ts.map +1 -0
- package/dist/resources/mem-dir-utils.js +44 -0
- package/dist/resources/mem-dir-utils.js.map +1 -0
- package/dist/resources/mem-resources-boot.d.ts +11 -0
- package/dist/resources/mem-resources-boot.d.ts.map +1 -0
- package/dist/resources/mem-resources-boot.js +127 -0
- package/dist/resources/mem-resources-boot.js.map +1 -0
- package/dist/resources/mem-uuid-mapper.d.ts +9 -0
- package/dist/resources/mem-uuid-mapper.d.ts.map +1 -0
- package/dist/resources/mem-uuid-mapper.js +63 -0
- package/dist/resources/mem-uuid-mapper.js.map +1 -0
- package/dist/resources/prompt-resources.d.ts +8 -0
- package/dist/resources/prompt-resources.d.ts.map +1 -0
- package/dist/resources/prompt-resources.js +56 -0
- package/dist/resources/prompt-resources.js.map +1 -0
- package/dist/resources/resource-bootstrap.d.ts +7 -0
- package/dist/resources/resource-bootstrap.d.ts.map +1 -0
- package/dist/resources/resource-bootstrap.js +33 -0
- package/dist/resources/resource-bootstrap.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +102 -0
- package/dist/server.js.map +1 -0
- package/dist/services/activate-refinement-store.d.ts +9 -0
- package/dist/services/activate-refinement-store.d.ts.map +1 -0
- package/dist/services/activate-refinement-store.js +46 -0
- package/dist/services/activate-refinement-store.js.map +1 -0
- package/dist/services/adapter-layer-count.d.ts +19 -0
- package/dist/services/adapter-layer-count.d.ts.map +1 -0
- package/dist/services/adapter-layer-count.js +23 -0
- package/dist/services/adapter-layer-count.js.map +1 -0
- package/dist/services/adapter-navigation.d.ts +15 -0
- package/dist/services/adapter-navigation.d.ts.map +1 -0
- package/dist/services/adapter-navigation.js +102 -0
- package/dist/services/adapter-navigation.js.map +1 -0
- package/dist/services/code-block-processor.d.ts +40 -0
- package/dist/services/code-block-processor.d.ts.map +1 -0
- package/dist/services/code-block-processor.js +169 -0
- package/dist/services/code-block-processor.js.map +1 -0
- package/dist/services/embedding/audit.d.ts +35 -0
- package/dist/services/embedding/audit.d.ts.map +1 -0
- package/dist/services/embedding/audit.js +146 -0
- package/dist/services/embedding/audit.js.map +1 -0
- package/dist/services/embedding/bm25-tokenizer.d.ts +21 -0
- package/dist/services/embedding/bm25-tokenizer.d.ts.map +1 -0
- package/dist/services/embedding/bm25-tokenizer.js +47 -0
- package/dist/services/embedding/bm25-tokenizer.js.map +1 -0
- package/dist/services/embedding/config.d.ts +11 -0
- package/dist/services/embedding/config.d.ts.map +1 -0
- package/dist/services/embedding/config.js +32 -0
- package/dist/services/embedding/config.js.map +1 -0
- package/dist/services/embedding/health.d.ts +5 -0
- package/dist/services/embedding/health.d.ts.map +1 -0
- package/dist/services/embedding/health.js +112 -0
- package/dist/services/embedding/health.js.map +1 -0
- package/dist/services/embedding/providers.d.ts +24 -0
- package/dist/services/embedding/providers.d.ts.map +1 -0
- package/dist/services/embedding/providers.js +331 -0
- package/dist/services/embedding/providers.js.map +1 -0
- package/dist/services/embedding/service.d.ts +41 -0
- package/dist/services/embedding/service.d.ts.map +1 -0
- package/dist/services/embedding/service.js +272 -0
- package/dist/services/embedding/service.js.map +1 -0
- package/dist/services/embedding/types.d.ts +17 -0
- package/dist/services/embedding/types.d.ts.map +1 -0
- package/dist/services/embedding/types.js +2 -0
- package/dist/services/embedding/types.js.map +1 -0
- package/dist/services/execution-trace-store.d.ts +54 -0
- package/dist/services/execution-trace-store.d.ts.map +1 -0
- package/dist/services/execution-trace-store.js +248 -0
- package/dist/services/execution-trace-store.js.map +1 -0
- package/dist/services/export-artifact-download-capability-store.d.ts +19 -0
- package/dist/services/export-artifact-download-capability-store.d.ts.map +1 -0
- package/dist/services/export-artifact-download-capability-store.js +15 -0
- package/dist/services/export-artifact-download-capability-store.js.map +1 -0
- package/dist/services/export-artifact-download-capability.d.ts +19 -0
- package/dist/services/export-artifact-download-capability.d.ts.map +1 -0
- package/dist/services/export-artifact-download-capability.js +79 -0
- package/dist/services/export-artifact-download-capability.js.map +1 -0
- package/dist/services/export-download-capability-store.d.ts +20 -0
- package/dist/services/export-download-capability-store.d.ts.map +1 -0
- package/dist/services/export-download-capability-store.js +15 -0
- package/dist/services/export-download-capability-store.js.map +1 -0
- package/dist/services/export-download-capability.d.ts +20 -0
- package/dist/services/export-download-capability.d.ts.map +1 -0
- package/dist/services/export-download-capability.js +81 -0
- package/dist/services/export-download-capability.js.map +1 -0
- package/dist/services/forward-runtime-store.d.ts +21 -0
- package/dist/services/forward-runtime-store.d.ts.map +1 -0
- package/dist/services/forward-runtime-store.js +58 -0
- package/dist/services/forward-runtime-store.js.map +1 -0
- package/dist/services/id-generator.d.ts +66 -0
- package/dist/services/id-generator.d.ts.map +1 -0
- package/dist/services/id-generator.js +112 -0
- package/dist/services/id-generator.js.map +1 -0
- package/dist/services/key-value-store-factory.d.ts +8 -0
- package/dist/services/key-value-store-factory.d.ts.map +1 -0
- package/dist/services/key-value-store-factory.js +16 -0
- package/dist/services/key-value-store-factory.js.map +1 -0
- package/dist/services/key-value-store.d.ts +28 -0
- package/dist/services/key-value-store.d.ts.map +1 -0
- package/dist/services/key-value-store.js +6 -0
- package/dist/services/key-value-store.js.map +1 -0
- package/dist/services/memory/activation-pattern-payload.d.ts +8 -0
- package/dist/services/memory/activation-pattern-payload.d.ts.map +1 -0
- package/dist/services/memory/activation-pattern-payload.js +89 -0
- package/dist/services/memory/activation-pattern-payload.js.map +1 -0
- package/dist/services/memory/activation-search-backfill.d.ts +3 -0
- package/dist/services/memory/activation-search-backfill.d.ts.map +1 -0
- package/dist/services/memory/activation-search-backfill.js +89 -0
- package/dist/services/memory/activation-search-backfill.js.map +1 -0
- package/dist/services/memory/activation-search-fields.d.ts +20 -0
- package/dist/services/memory/activation-search-fields.d.ts.map +1 -0
- package/dist/services/memory/activation-search-fields.js +57 -0
- package/dist/services/memory/activation-search-fields.js.map +1 -0
- package/dist/services/memory/adapter-builder.d.ts +4 -0
- package/dist/services/memory/adapter-builder.d.ts.map +1 -0
- package/dist/services/memory/adapter-builder.js +229 -0
- package/dist/services/memory/adapter-builder.js.map +1 -0
- package/dist/services/memory/adapter-contract-blocks.d.ts +25 -0
- package/dist/services/memory/adapter-contract-blocks.d.ts.map +1 -0
- package/dist/services/memory/adapter-contract-blocks.js +98 -0
- package/dist/services/memory/adapter-contract-blocks.js.map +1 -0
- package/dist/services/memory/artifact-metadata.d.ts +7 -0
- package/dist/services/memory/artifact-metadata.d.ts.map +1 -0
- package/dist/services/memory/artifact-metadata.js +70 -0
- package/dist/services/memory/artifact-metadata.js.map +1 -0
- package/dist/services/memory/memory-accessors.d.ts +13 -0
- package/dist/services/memory/memory-accessors.d.ts.map +1 -0
- package/dist/services/memory/memory-accessors.js +32 -0
- package/dist/services/memory/memory-accessors.js.map +1 -0
- package/dist/services/memory/qdrant-point-to-memory.d.ts +8 -0
- package/dist/services/memory/qdrant-point-to-memory.d.ts.map +1 -0
- package/dist/services/memory/qdrant-point-to-memory.js +79 -0
- package/dist/services/memory/qdrant-point-to-memory.js.map +1 -0
- package/dist/services/memory/store-adapter-default-handler.d.ts +10 -0
- package/dist/services/memory/store-adapter-default-handler.d.ts.map +1 -0
- package/dist/services/memory/store-adapter-default-handler.js +190 -0
- package/dist/services/memory/store-adapter-default-handler.js.map +1 -0
- package/dist/services/memory/store-adapter-header-handler.d.ts +9 -0
- package/dist/services/memory/store-adapter-header-handler.d.ts.map +1 -0
- package/dist/services/memory/store-adapter-header-handler.js +156 -0
- package/dist/services/memory/store-adapter-header-handler.js.map +1 -0
- package/dist/services/memory/store-adapter-helpers.d.ts +41 -0
- package/dist/services/memory/store-adapter-helpers.d.ts.map +1 -0
- package/dist/services/memory/store-adapter-helpers.js +180 -0
- package/dist/services/memory/store-adapter-helpers.js.map +1 -0
- package/dist/services/memory/store-adapter.d.ts +29 -0
- package/dist/services/memory/store-adapter.d.ts.map +1 -0
- package/dist/services/memory/store-adapter.js +88 -0
- package/dist/services/memory/store-adapter.js.map +1 -0
- package/dist/services/memory/store-artifact.d.ts +5 -0
- package/dist/services/memory/store-artifact.d.ts.map +1 -0
- package/dist/services/memory/store-artifact.js +252 -0
- package/dist/services/memory/store-artifact.js.map +1 -0
- package/dist/services/memory/store-init.d.ts +3 -0
- package/dist/services/memory/store-init.d.ts.map +1 -0
- package/dist/services/memory/store-init.js +289 -0
- package/dist/services/memory/store-init.js.map +1 -0
- package/dist/services/memory/store-methods.d.ts +29 -0
- package/dist/services/memory/store-methods.d.ts.map +1 -0
- package/dist/services/memory/store-methods.js +241 -0
- package/dist/services/memory/store-methods.js.map +1 -0
- package/dist/services/memory/store-title-similarity-search.d.ts +16 -0
- package/dist/services/memory/store-title-similarity-search.d.ts.map +1 -0
- package/dist/services/memory/store-title-similarity-search.js +50 -0
- package/dist/services/memory/store-title-similarity-search.js.map +1 -0
- package/dist/services/memory/store.d.ts +40 -0
- package/dist/services/memory/store.d.ts.map +1 -0
- package/dist/services/memory/store.js +122 -0
- package/dist/services/memory/store.js.map +1 -0
- package/dist/services/memory/validate-adapter-markdown-size.d.ts +24 -0
- package/dist/services/memory/validate-adapter-markdown-size.d.ts.map +1 -0
- package/dist/services/memory/validate-adapter-markdown-size.js +95 -0
- package/dist/services/memory/validate-adapter-markdown-size.js.map +1 -0
- package/dist/services/memory/validate-protocol-structure.d.ts +21 -0
- package/dist/services/memory/validate-protocol-structure.d.ts.map +1 -0
- package/dist/services/memory/validate-protocol-structure.js +171 -0
- package/dist/services/memory/validate-protocol-structure.js.map +1 -0
- package/dist/services/memory-store.d.ts +36 -0
- package/dist/services/memory-store.d.ts.map +1 -0
- package/dist/services/memory-store.js +183 -0
- package/dist/services/memory-store.js.map +1 -0
- package/dist/services/metrics/agent-metrics.d.ts +12 -0
- package/dist/services/metrics/agent-metrics.d.ts.map +1 -0
- package/dist/services/metrics/agent-metrics.js +34 -0
- package/dist/services/metrics/agent-metrics.js.map +1 -0
- package/dist/services/metrics/anomaly-metrics.d.ts +3 -0
- package/dist/services/metrics/anomaly-metrics.d.ts.map +1 -0
- package/dist/services/metrics/anomaly-metrics.js +9 -0
- package/dist/services/metrics/anomaly-metrics.js.map +1 -0
- package/dist/services/metrics/embedding-metrics.d.ts +12 -0
- package/dist/services/metrics/embedding-metrics.d.ts.map +1 -0
- package/dist/services/metrics/embedding-metrics.js +41 -0
- package/dist/services/metrics/embedding-metrics.js.map +1 -0
- package/dist/services/metrics/export-metrics.d.ts +21 -0
- package/dist/services/metrics/export-metrics.d.ts.map +1 -0
- package/dist/services/metrics/export-metrics.js +50 -0
- package/dist/services/metrics/export-metrics.js.map +1 -0
- package/dist/services/metrics/http-metrics.d.ts +12 -0
- package/dist/services/metrics/http-metrics.d.ts.map +1 -0
- package/dist/services/metrics/http-metrics.js +41 -0
- package/dist/services/metrics/http-metrics.js.map +1 -0
- package/dist/services/metrics/mcp-metrics.d.ts +16 -0
- package/dist/services/metrics/mcp-metrics.d.ts.map +1 -0
- package/dist/services/metrics/mcp-metrics.js +55 -0
- package/dist/services/metrics/mcp-metrics.js.map +1 -0
- package/dist/services/metrics/memory-metrics.d.ts +10 -0
- package/dist/services/metrics/memory-metrics.d.ts.map +1 -0
- package/dist/services/metrics/memory-metrics.js +28 -0
- package/dist/services/metrics/memory-metrics.js.map +1 -0
- package/dist/services/metrics/qdrant-metrics.d.ts +11 -0
- package/dist/services/metrics/qdrant-metrics.d.ts.map +1 -0
- package/dist/services/metrics/qdrant-metrics.js +35 -0
- package/dist/services/metrics/qdrant-metrics.js.map +1 -0
- package/dist/services/metrics/registry.d.ts +9 -0
- package/dist/services/metrics/registry.d.ts.map +1 -0
- package/dist/services/metrics/registry.js +19 -0
- package/dist/services/metrics/registry.js.map +1 -0
- package/dist/services/metrics/system-metrics.d.ts +10 -0
- package/dist/services/metrics/system-metrics.d.ts.map +1 -0
- package/dist/services/metrics/system-metrics.js +35 -0
- package/dist/services/metrics/system-metrics.js.map +1 -0
- package/dist/services/oidc-state-store.d.ts +29 -0
- package/dist/services/oidc-state-store.d.ts.map +1 -0
- package/dist/services/oidc-state-store.js +42 -0
- package/dist/services/oidc-state-store.js.map +1 -0
- package/dist/services/proof-of-work-store.d.ts +66 -0
- package/dist/services/proof-of-work-store.d.ts.map +1 -0
- package/dist/services/proof-of-work-store.js +141 -0
- package/dist/services/proof-of-work-store.js.map +1 -0
- package/dist/services/qdrant/connection.d.ts +24 -0
- package/dist/services/qdrant/connection.d.ts.map +1 -0
- package/dist/services/qdrant/connection.js +126 -0
- package/dist/services/qdrant/connection.js.map +1 -0
- package/dist/services/qdrant/index.d.ts +3 -0
- package/dist/services/qdrant/index.d.ts.map +1 -0
- package/dist/services/qdrant/index.js +4 -0
- package/dist/services/qdrant/index.js.map +1 -0
- package/dist/services/qdrant/initialization.d.ts +26 -0
- package/dist/services/qdrant/initialization.d.ts.map +1 -0
- package/dist/services/qdrant/initialization.js +179 -0
- package/dist/services/qdrant/initialization.js.map +1 -0
- package/dist/services/qdrant/listing.d.ts +26 -0
- package/dist/services/qdrant/listing.d.ts.map +1 -0
- package/dist/services/qdrant/listing.js +88 -0
- package/dist/services/qdrant/listing.js.map +1 -0
- package/dist/services/qdrant/memory-retrieval.d.ts +54 -0
- package/dist/services/qdrant/memory-retrieval.d.ts.map +1 -0
- package/dist/services/qdrant/memory-retrieval.js +278 -0
- package/dist/services/qdrant/memory-retrieval.js.map +1 -0
- package/dist/services/qdrant/memory-store.d.ts +16 -0
- package/dist/services/qdrant/memory-store.d.ts.map +1 -0
- package/dist/services/qdrant/memory-store.js +108 -0
- package/dist/services/qdrant/memory-store.js.map +1 -0
- package/dist/services/qdrant/memory-updates.d.ts +8 -0
- package/dist/services/qdrant/memory-updates.d.ts.map +1 -0
- package/dist/services/qdrant/memory-updates.js +205 -0
- package/dist/services/qdrant/memory-updates.js.map +1 -0
- package/dist/services/qdrant/protocol.d.ts +16 -0
- package/dist/services/qdrant/protocol.d.ts.map +1 -0
- package/dist/services/qdrant/protocol.js +48 -0
- package/dist/services/qdrant/protocol.js.map +1 -0
- package/dist/services/qdrant/quality.d.ts +14 -0
- package/dist/services/qdrant/quality.d.ts.map +1 -0
- package/dist/services/qdrant/quality.js +99 -0
- package/dist/services/qdrant/quality.js.map +1 -0
- package/dist/services/qdrant/resources.d.ts +7 -0
- package/dist/services/qdrant/resources.d.ts.map +1 -0
- package/dist/services/qdrant/resources.js +123 -0
- package/dist/services/qdrant/resources.js.map +1 -0
- package/dist/services/qdrant/reward-propagation.d.ts +7 -0
- package/dist/services/qdrant/reward-propagation.d.ts.map +1 -0
- package/dist/services/qdrant/reward-propagation.js +62 -0
- package/dist/services/qdrant/reward-propagation.js.map +1 -0
- package/dist/services/qdrant/search.d.ts +22 -0
- package/dist/services/qdrant/search.d.ts.map +1 -0
- package/dist/services/qdrant/search.js +76 -0
- package/dist/services/qdrant/search.js.map +1 -0
- package/dist/services/qdrant/service.d.ts +96 -0
- package/dist/services/qdrant/service.d.ts.map +1 -0
- package/dist/services/qdrant/service.js +107 -0
- package/dist/services/qdrant/service.js.map +1 -0
- package/dist/services/qdrant/snapshots.d.ts +19 -0
- package/dist/services/qdrant/snapshots.d.ts.map +1 -0
- package/dist/services/qdrant/snapshots.js +130 -0
- package/dist/services/qdrant/snapshots.js.map +1 -0
- package/dist/services/qdrant/types.d.ts +39 -0
- package/dist/services/qdrant/types.d.ts.map +1 -0
- package/dist/services/qdrant/types.js +2 -0
- package/dist/services/qdrant/types.js.map +1 -0
- package/dist/services/qdrant/undici-compat.d.ts +8 -0
- package/dist/services/qdrant/undici-compat.d.ts.map +1 -0
- package/dist/services/qdrant/undici-compat.js +23 -0
- package/dist/services/qdrant/undici-compat.js.map +1 -0
- package/dist/services/qdrant/utils.d.ts +20 -0
- package/dist/services/qdrant/utils.d.ts.map +1 -0
- package/dist/services/qdrant/utils.js +121 -0
- package/dist/services/qdrant/utils.js.map +1 -0
- package/dist/services/redis-cache.d.ts +50 -0
- package/dist/services/redis-cache.d.ts.map +1 -0
- package/dist/services/redis-cache.js +237 -0
- package/dist/services/redis-cache.js.map +1 -0
- package/dist/services/redis.d.ts +46 -0
- package/dist/services/redis.d.ts.map +1 -0
- package/dist/services/redis.js +272 -0
- package/dist/services/redis.js.map +1 -0
- package/dist/services/reward-evals.d.ts +29 -0
- package/dist/services/reward-evals.d.ts.map +1 -0
- package/dist/services/reward-evals.js +116 -0
- package/dist/services/reward-evals.js.map +1 -0
- package/dist/services/reward-metrics.d.ts +20 -0
- package/dist/services/reward-metrics.d.ts.map +1 -0
- package/dist/services/reward-metrics.js +72 -0
- package/dist/services/reward-metrics.js.map +1 -0
- package/dist/services/stats/bonuses.d.ts +28 -0
- package/dist/services/stats/bonuses.d.ts.map +1 -0
- package/dist/services/stats/bonuses.js +96 -0
- package/dist/services/stats/bonuses.js.map +1 -0
- package/dist/services/stats/healer.d.ts +6 -0
- package/dist/services/stats/healer.d.ts.map +1 -0
- package/dist/services/stats/healer.js +24 -0
- package/dist/services/stats/healer.js.map +1 -0
- package/dist/services/stats/model-stats.d.ts +53 -0
- package/dist/services/stats/model-stats.d.ts.map +1 -0
- package/dist/services/stats/model-stats.js +238 -0
- package/dist/services/stats/model-stats.js.map +1 -0
- package/dist/services/stats/protocol.d.ts +11 -0
- package/dist/services/stats/protocol.d.ts.map +1 -0
- package/dist/services/stats/protocol.js +55 -0
- package/dist/services/stats/protocol.js.map +1 -0
- package/dist/services/stats/scoring.d.ts +19 -0
- package/dist/services/stats/scoring.d.ts.map +1 -0
- package/dist/services/stats/scoring.js +102 -0
- package/dist/services/stats/scoring.js.map +1 -0
- package/dist/services/stats/types.d.ts +39 -0
- package/dist/services/stats/types.d.ts.map +1 -0
- package/dist/services/stats/types.js +8 -0
- package/dist/services/stats/types.js.map +1 -0
- package/dist/squadrules-mcp-4.8.6.tgz +0 -0
- package/dist/stdio/stdio-server.d.ts +3 -0
- package/dist/stdio/stdio-server.d.ts.map +1 -0
- package/dist/stdio/stdio-server.js +12 -0
- package/dist/stdio/stdio-server.js.map +1 -0
- package/dist/tools/activate.d.ts +11 -0
- package/dist/tools/activate.d.ts.map +1 -0
- package/dist/tools/activate.js +228 -0
- package/dist/tools/activate.js.map +1 -0
- package/dist/tools/activate_schema.d.ts +73 -0
- package/dist/tools/activate_schema.d.ts.map +1 -0
- package/dist/tools/activate_schema.js +102 -0
- package/dist/tools/activate_schema.js.map +1 -0
- package/dist/tools/artifact-catalog.d.ts +17 -0
- package/dist/tools/artifact-catalog.d.ts.map +1 -0
- package/dist/tools/artifact-catalog.js +82 -0
- package/dist/tools/artifact-catalog.js.map +1 -0
- package/dist/tools/artifact-mime.d.ts +9 -0
- package/dist/tools/artifact-mime.d.ts.map +1 -0
- package/dist/tools/artifact-mime.js +40 -0
- package/dist/tools/artifact-mime.js.map +1 -0
- package/dist/tools/artifact-relative-path.d.ts +7 -0
- package/dist/tools/artifact-relative-path.d.ts.map +1 -0
- package/dist/tools/artifact-relative-path.js +29 -0
- package/dist/tools/artifact-relative-path.js.map +1 -0
- package/dist/tools/delete.d.ts +6 -0
- package/dist/tools/delete.d.ts.map +1 -0
- package/dist/tools/delete.js +103 -0
- package/dist/tools/delete.js.map +1 -0
- package/dist/tools/delete_schema.d.ts +19 -0
- package/dist/tools/delete_schema.d.ts.map +1 -0
- package/dist/tools/delete_schema.js +25 -0
- package/dist/tools/delete_schema.js.map +1 -0
- package/dist/tools/dump.d.ts +9 -0
- package/dist/tools/dump.d.ts.map +1 -0
- package/dist/tools/dump.js +171 -0
- package/dist/tools/dump.js.map +1 -0
- package/dist/tools/dump_schema.d.ts +18 -0
- package/dist/tools/dump_schema.d.ts.map +1 -0
- package/dist/tools/dump_schema.js +18 -0
- package/dist/tools/dump_schema.js.map +1 -0
- package/dist/tools/export-resolve-adapter.d.ts +7 -0
- package/dist/tools/export-resolve-adapter.d.ts.map +1 -0
- package/dist/tools/export-resolve-adapter.js +37 -0
- package/dist/tools/export-resolve-adapter.js.map +1 -0
- package/dist/tools/export-reward-jsonl.d.ts +64 -0
- package/dist/tools/export-reward-jsonl.d.ts.map +1 -0
- package/dist/tools/export-reward-jsonl.js +118 -0
- package/dist/tools/export-reward-jsonl.js.map +1 -0
- package/dist/tools/export-selection.d.ts +8 -0
- package/dist/tools/export-selection.d.ts.map +1 -0
- package/dist/tools/export-selection.js +59 -0
- package/dist/tools/export-selection.js.map +1 -0
- package/dist/tools/export-skill-items.d.ts +14 -0
- package/dist/tools/export-skill-items.d.ts.map +1 -0
- package/dist/tools/export-skill-items.js +42 -0
- package/dist/tools/export-skill-items.js.map +1 -0
- package/dist/tools/export-source.d.ts +8 -0
- package/dist/tools/export-source.d.ts.map +1 -0
- package/dist/tools/export-source.js +82 -0
- package/dist/tools/export-source.js.map +1 -0
- package/dist/tools/export-telemetry.d.ts +14 -0
- package/dist/tools/export-telemetry.d.ts.map +1 -0
- package/dist/tools/export-telemetry.js +80 -0
- package/dist/tools/export-telemetry.js.map +1 -0
- package/dist/tools/export.d.ts +14 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +261 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/export_schema.d.ts +84 -0
- package/dist/tools/export_schema.d.ts.map +1 -0
- package/dist/tools/export_schema.js +123 -0
- package/dist/tools/export_schema.js.map +1 -0
- package/dist/tools/forward-helpers.d.ts +8 -0
- package/dist/tools/forward-helpers.d.ts.map +1 -0
- package/dist/tools/forward-helpers.js +22 -0
- package/dist/tools/forward-helpers.js.map +1 -0
- package/dist/tools/forward-register.d.ts +8 -0
- package/dist/tools/forward-register.d.ts.map +1 -0
- package/dist/tools/forward-register.js +52 -0
- package/dist/tools/forward-register.js.map +1 -0
- package/dist/tools/forward-tool-error.d.ts +3 -0
- package/dist/tools/forward-tool-error.d.ts.map +1 -0
- package/dist/tools/forward-tool-error.js +9 -0
- package/dist/tools/forward-tool-error.js.map +1 -0
- package/dist/tools/forward-trace.d.ts +8 -0
- package/dist/tools/forward-trace.d.ts.map +1 -0
- package/dist/tools/forward-trace.js +187 -0
- package/dist/tools/forward-trace.js.map +1 -0
- package/dist/tools/forward-view.d.ts +55 -0
- package/dist/tools/forward-view.d.ts.map +1 -0
- package/dist/tools/forward-view.js +279 -0
- package/dist/tools/forward-view.js.map +1 -0
- package/dist/tools/forward.d.ts +5 -0
- package/dist/tools/forward.d.ts.map +1 -0
- package/dist/tools/forward.js +206 -0
- package/dist/tools/forward.js.map +1 -0
- package/dist/tools/forward_schema.d.ts +274 -0
- package/dist/tools/forward_schema.d.ts.map +1 -0
- package/dist/tools/forward_schema.js +309 -0
- package/dist/tools/forward_schema.js.map +1 -0
- package/dist/tools/kairos-challenge-display.d.ts +4 -0
- package/dist/tools/kairos-challenge-display.d.ts.map +1 -0
- package/dist/tools/kairos-challenge-display.js +86 -0
- package/dist/tools/kairos-challenge-display.js.map +1 -0
- package/dist/tools/kairos-genesis-proof-hash.d.ts +3 -0
- package/dist/tools/kairos-genesis-proof-hash.d.ts.map +1 -0
- package/dist/tools/kairos-genesis-proof-hash.js +4 -0
- package/dist/tools/kairos-genesis-proof-hash.js.map +1 -0
- package/dist/tools/kairos-uri.d.ts +28 -0
- package/dist/tools/kairos-uri.d.ts.map +1 -0
- package/dist/tools/kairos-uri.js +105 -0
- package/dist/tools/kairos-uri.js.map +1 -0
- package/dist/tools/local-artifact-dir-contract.d.ts +16 -0
- package/dist/tools/local-artifact-dir-contract.d.ts.map +1 -0
- package/dist/tools/local-artifact-dir-contract.js +24 -0
- package/dist/tools/local-artifact-dir-contract.js.map +1 -0
- package/dist/tools/mcp-contract-match.d.ts +21 -0
- package/dist/tools/mcp-contract-match.d.ts.map +1 -0
- package/dist/tools/mcp-contract-match.js +78 -0
- package/dist/tools/mcp-contract-match.js.map +1 -0
- package/dist/tools/mcp-loose-input-schema.d.ts +8 -0
- package/dist/tools/mcp-loose-input-schema.d.ts.map +1 -0
- package/dist/tools/mcp-loose-input-schema.js +10 -0
- package/dist/tools/mcp-loose-input-schema.js.map +1 -0
- package/dist/tools/mcp-runtime-error.d.ts +19 -0
- package/dist/tools/mcp-runtime-error.d.ts.map +1 -0
- package/dist/tools/mcp-runtime-error.js +34 -0
- package/dist/tools/mcp-runtime-error.js.map +1 -0
- package/dist/tools/mcp-tool-input-teaching.d.ts +12 -0
- package/dist/tools/mcp-tool-input-teaching.d.ts.map +1 -0
- package/dist/tools/mcp-tool-input-teaching.js +259 -0
- package/dist/tools/mcp-tool-input-teaching.js.map +1 -0
- package/dist/tools/next-missing-proof-payload.d.ts +24 -0
- package/dist/tools/next-missing-proof-payload.d.ts.map +1 -0
- package/dist/tools/next-missing-proof-payload.js +36 -0
- package/dist/tools/next-missing-proof-payload.js.map +1 -0
- package/dist/tools/next-pow-challenge-shape.d.ts +4 -0
- package/dist/tools/next-pow-challenge-shape.d.ts.map +1 -0
- package/dist/tools/next-pow-challenge-shape.js +49 -0
- package/dist/tools/next-pow-challenge-shape.js.map +1 -0
- package/dist/tools/next-pow-helpers.d.ts +9 -0
- package/dist/tools/next-pow-helpers.d.ts.map +1 -0
- package/dist/tools/next-pow-helpers.js +259 -0
- package/dist/tools/next-pow-helpers.js.map +1 -0
- package/dist/tools/next-previous-step.d.ts +36 -0
- package/dist/tools/next-previous-step.d.ts.map +1 -0
- package/dist/tools/next-previous-step.js +134 -0
- package/dist/tools/next-previous-step.js.map +1 -0
- package/dist/tools/next-proof-types.d.ts +45 -0
- package/dist/tools/next-proof-types.d.ts.map +1 -0
- package/dist/tools/next-proof-types.js +2 -0
- package/dist/tools/next-proof-types.js.map +1 -0
- package/dist/tools/next.d.ts +9 -0
- package/dist/tools/next.d.ts.map +1 -0
- package/dist/tools/next.js +205 -0
- package/dist/tools/next.js.map +1 -0
- package/dist/tools/next_schema.d.ts +148 -0
- package/dist/tools/next_schema.d.ts.map +1 -0
- package/dist/tools/next_schema.js +99 -0
- package/dist/tools/next_schema.js.map +1 -0
- package/dist/tools/review-evidence-check.d.ts +12 -0
- package/dist/tools/review-evidence-check.d.ts.map +1 -0
- package/dist/tools/review-evidence-check.js +23 -0
- package/dist/tools/review-evidence-check.js.map +1 -0
- package/dist/tools/reward.d.ts +9 -0
- package/dist/tools/reward.d.ts.map +1 -0
- package/dist/tools/reward.js +133 -0
- package/dist/tools/reward.js.map +1 -0
- package/dist/tools/reward_schema.d.ts +61 -0
- package/dist/tools/reward_schema.d.ts.map +1 -0
- package/dist/tools/reward_schema.js +42 -0
- package/dist/tools/reward_schema.js.map +1 -0
- package/dist/tools/search.d.ts +11 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +197 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/search_output.d.ts +55 -0
- package/dist/tools/search_output.d.ts.map +1 -0
- package/dist/tools/search_output.js +161 -0
- package/dist/tools/search_output.js.map +1 -0
- package/dist/tools/search_schema.d.ts +32 -0
- package/dist/tools/search_schema.d.ts.map +1 -0
- package/dist/tools/search_schema.js +47 -0
- package/dist/tools/search_schema.js.map +1 -0
- package/dist/tools/shell-challenge-invocation.d.ts +32 -0
- package/dist/tools/shell-challenge-invocation.d.ts.map +1 -0
- package/dist/tools/shell-challenge-invocation.js +113 -0
- package/dist/tools/shell-challenge-invocation.js.map +1 -0
- package/dist/tools/skill-export/artifact-files.d.ts +18 -0
- package/dist/tools/skill-export/artifact-files.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-files.js +67 -0
- package/dist/tools/skill-export/artifact-files.js.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/default-rules.d.ts +4 -0
- package/dist/tools/skill-export/artifact-sanitization/default-rules.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/default-rules.js +6 -0
- package/dist/tools/skill-export/artifact-sanitization/default-rules.js.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/extension-mime-map.d.ts +12 -0
- package/dist/tools/skill-export/artifact-sanitization/extension-mime-map.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/extension-mime-map.js +25 -0
- package/dist/tools/skill-export/artifact-sanitization/extension-mime-map.js.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/index.d.ts +5 -0
- package/dist/tools/skill-export/artifact-sanitization/index.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/index.js +4 -0
- package/dist/tools/skill-export/artifact-sanitization/index.js.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/normalize-mime.d.ts +3 -0
- package/dist/tools/skill-export/artifact-sanitization/normalize-mime.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/normalize-mime.js +9 -0
- package/dist/tools/skill-export/artifact-sanitization/normalize-mime.js.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/rules/extension-mime-consistency.d.ts +7 -0
- package/dist/tools/skill-export/artifact-sanitization/rules/extension-mime-consistency.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/rules/extension-mime-consistency.js +54 -0
- package/dist/tools/skill-export/artifact-sanitization/rules/extension-mime-consistency.js.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/run-sanitization.d.ts +7 -0
- package/dist/tools/skill-export/artifact-sanitization/run-sanitization.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/run-sanitization.js +22 -0
- package/dist/tools/skill-export/artifact-sanitization/run-sanitization.js.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/types.d.ts +22 -0
- package/dist/tools/skill-export/artifact-sanitization/types.d.ts.map +1 -0
- package/dist/tools/skill-export/artifact-sanitization/types.js +7 -0
- package/dist/tools/skill-export/artifact-sanitization/types.js.map +1 -0
- package/dist/tools/skill-export/assemble-skill-item.d.ts +21 -0
- package/dist/tools/skill-export/assemble-skill-item.d.ts.map +1 -0
- package/dist/tools/skill-export/assemble-skill-item.js +68 -0
- package/dist/tools/skill-export/assemble-skill-item.js.map +1 -0
- package/dist/tools/skill-export/build-skill-md.d.ts +9 -0
- package/dist/tools/skill-export/build-skill-md.d.ts.map +1 -0
- package/dist/tools/skill-export/build-skill-md.js +20 -0
- package/dist/tools/skill-export/build-skill-md.js.map +1 -0
- package/dist/tools/skill-export/derive-metadata.d.ts +29 -0
- package/dist/tools/skill-export/derive-metadata.d.ts.map +1 -0
- package/dist/tools/skill-export/derive-metadata.js +81 -0
- package/dist/tools/skill-export/derive-metadata.js.map +1 -0
- package/dist/tools/skill-export/enumerate-space-adapters.d.ts +16 -0
- package/dist/tools/skill-export/enumerate-space-adapters.d.ts.map +1 -0
- package/dist/tools/skill-export/enumerate-space-adapters.js +45 -0
- package/dist/tools/skill-export/enumerate-space-adapters.js.map +1 -0
- package/dist/tools/skill-export/scan-diagnostics.d.ts +9 -0
- package/dist/tools/skill-export/scan-diagnostics.d.ts.map +1 -0
- package/dist/tools/skill-export/scan-diagnostics.js +20 -0
- package/dist/tools/skill-export/scan-diagnostics.js.map +1 -0
- package/dist/tools/skill-export/sha256.d.ts +2 -0
- package/dist/tools/skill-export/sha256.d.ts.map +1 -0
- package/dist/tools/skill-export/sha256.js +5 -0
- package/dist/tools/skill-export/sha256.js.map +1 -0
- package/dist/tools/skill-export/sha256sums.d.ts +14 -0
- package/dist/tools/skill-export/sha256sums.d.ts.map +1 -0
- package/dist/tools/skill-export/sha256sums.js +32 -0
- package/dist/tools/skill-export/sha256sums.js.map +1 -0
- package/dist/tools/skill-export/types.d.ts +26 -0
- package/dist/tools/skill-export/types.d.ts.map +1 -0
- package/dist/tools/skill-export/types.js +5 -0
- package/dist/tools/skill-export/types.js.map +1 -0
- package/dist/tools/skill-export/zip-bundle.d.ts +28 -0
- package/dist/tools/skill-export/zip-bundle.d.ts.map +1 -0
- package/dist/tools/skill-export/zip-bundle.js +54 -0
- package/dist/tools/skill-export/zip-bundle.js.map +1 -0
- package/dist/tools/spaces.d.ts +44 -0
- package/dist/tools/spaces.d.ts.map +1 -0
- package/dist/tools/spaces.js +205 -0
- package/dist/tools/spaces.js.map +1 -0
- package/dist/tools/spaces_schema.d.ts +36 -0
- package/dist/tools/spaces_schema.d.ts.map +1 -0
- package/dist/tools/spaces_schema.js +46 -0
- package/dist/tools/spaces_schema.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +496 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +86 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/train-artifact-adapter-uri.d.ts +3 -0
- package/dist/tools/train-artifact-adapter-uri.d.ts.map +1 -0
- package/dist/tools/train-artifact-adapter-uri.js +27 -0
- package/dist/tools/train-artifact-adapter-uri.js.map +1 -0
- package/dist/tools/train-mime.d.ts +3 -0
- package/dist/tools/train-mime.d.ts.map +1 -0
- package/dist/tools/train-mime.js +18 -0
- package/dist/tools/train-mime.js.map +1 -0
- package/dist/tools/train-output-adapter-uri.d.ts +8 -0
- package/dist/tools/train-output-adapter-uri.d.ts.map +1 -0
- package/dist/tools/train-output-adapter-uri.js +29 -0
- package/dist/tools/train-output-adapter-uri.js.map +1 -0
- package/dist/tools/train-store.d.ts +15 -0
- package/dist/tools/train-store.d.ts.map +1 -0
- package/dist/tools/train-store.js +111 -0
- package/dist/tools/train-store.js.map +1 -0
- package/dist/tools/train.d.ts +11 -0
- package/dist/tools/train.d.ts.map +1 -0
- package/dist/tools/train.js +310 -0
- package/dist/tools/train.js.map +1 -0
- package/dist/tools/train_schema.d.ts +60 -0
- package/dist/tools/train_schema.d.ts.map +1 -0
- package/dist/tools/train_schema.js +196 -0
- package/dist/tools/train_schema.js.map +1 -0
- package/dist/tools/tune-cache-invalidation.d.ts +8 -0
- package/dist/tools/tune-cache-invalidation.d.ts.map +1 -0
- package/dist/tools/tune-cache-invalidation.js +12 -0
- package/dist/tools/tune-cache-invalidation.js.map +1 -0
- package/dist/tools/tune-execute.d.ts +4 -0
- package/dist/tools/tune-execute.d.ts.map +1 -0
- package/dist/tools/tune-execute.js +293 -0
- package/dist/tools/tune-execute.js.map +1 -0
- package/dist/tools/tune-messages.d.ts +6 -0
- package/dist/tools/tune-messages.d.ts.map +1 -0
- package/dist/tools/tune-messages.js +14 -0
- package/dist/tools/tune-messages.js.map +1 -0
- package/dist/tools/tune-verify.d.ts +16 -0
- package/dist/tools/tune-verify.d.ts.map +1 -0
- package/dist/tools/tune-verify.js +18 -0
- package/dist/tools/tune-verify.js.map +1 -0
- package/dist/tools/tune.d.ts +9 -0
- package/dist/tools/tune.d.ts.map +1 -0
- package/dist/tools/tune.js +54 -0
- package/dist/tools/tune.js.map +1 -0
- package/dist/tools/tune_schema.d.ts +27 -0
- package/dist/tools/tune_schema.d.ts.map +1 -0
- package/dist/tools/tune_schema.js +61 -0
- package/dist/tools/tune_schema.js.map +1 -0
- package/dist/tools/update.d.ts +5 -0
- package/dist/tools/update.d.ts.map +1 -0
- package/dist/tools/update.js +69 -0
- package/dist/tools/update.js.map +1 -0
- package/dist/tools/update_schema.d.ts +21 -0
- package/dist/tools/update_schema.d.ts.map +1 -0
- package/dist/tools/update_schema.js +24 -0
- package/dist/tools/update_schema.js.map +1 -0
- package/dist/types/index.d.ts +60 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +114 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +2 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/ui/assets/AccountPage-DBrqe8KI.js +1 -0
- package/dist/ui/assets/ChallengeCard-gY-n7rwI.js +1 -0
- package/dist/ui/assets/ErrorAlert-BQMph5Nh.js +1 -0
- package/dist/ui/assets/HomePage-DIKsxKaH.js +1 -0
- package/dist/ui/assets/KairosPage-n5qbiyxb.js +1 -0
- package/dist/ui/assets/NotFoundPage-Dz-PKC4R.js +1 -0
- package/dist/ui/assets/ProtocolDetailPage-C20Yd3q6.js +1 -0
- package/dist/ui/assets/ProtocolEditPage-hc87ZsgM.js +5 -0
- package/dist/ui/assets/RichTextEditor-uun0UIVc.js +1 -0
- package/dist/ui/assets/RunGuidedPage-BbyHZjPU.js +1 -0
- package/dist/ui/assets/RunsPage-BijmxS6f.js +1 -0
- package/dist/ui/assets/SkillBundlePage-BsndXJaC.js +1 -0
- package/dist/ui/assets/SpaceSelect-DDhPkDXU.js +1 -0
- package/dist/ui/assets/StepFlowGraph-DsL5lsIq.js +1 -0
- package/dist/ui/assets/SurfaceCard-CRidnDLP.js +1 -0
- package/dist/ui/assets/api-BgTb-tmJ.js +1 -0
- package/dist/ui/assets/export-skill-zip-CIyOWxuI.js +4 -0
- package/dist/ui/assets/index-D7zMHqYN.js +8 -0
- package/dist/ui/assets/index-fBTJW4Qq.css +2 -0
- package/dist/ui/assets/kairos-mcp-DNiKVgiO.svg +24 -0
- package/dist/ui/assets/react-CR5VJ85Q.js +9 -0
- package/dist/ui/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/ui/assets/tiptap-74Cp-fci.js +204 -0
- package/dist/ui/assets/useRunSession-062hqhcN.js +1 -0
- package/dist/ui/assets/vendor-DGTQ2S8W.js +31 -0
- package/dist/ui/favicon.svg +24 -0
- package/dist/ui/index.html +39 -0
- package/dist/ui/logo.svg +24 -0
- package/dist/utils/audit-log-events.d.ts +6 -0
- package/dist/utils/audit-log-events.d.ts.map +1 -0
- package/dist/utils/audit-log-events.js +59 -0
- package/dist/utils/audit-log-events.js.map +1 -0
- package/dist/utils/audit-mcp-summary.d.ts +25 -0
- package/dist/utils/audit-mcp-summary.d.ts.map +1 -0
- package/dist/utils/audit-mcp-summary.js +172 -0
- package/dist/utils/audit-mcp-summary.js.map +1 -0
- package/dist/utils/audit-secret-patterns.d.ts +9 -0
- package/dist/utils/audit-secret-patterns.d.ts.map +1 -0
- package/dist/utils/audit-secret-patterns.js +24 -0
- package/dist/utils/audit-secret-patterns.js.map +1 -0
- package/dist/utils/build-version.d.ts +15 -0
- package/dist/utils/build-version.d.ts.map +1 -0
- package/dist/utils/build-version.js +46 -0
- package/dist/utils/build-version.js.map +1 -0
- package/dist/utils/concurrency-limit.d.ts +19 -0
- package/dist/utils/concurrency-limit.d.ts.map +1 -0
- package/dist/utils/concurrency-limit.js +78 -0
- package/dist/utils/concurrency-limit.js.map +1 -0
- package/dist/utils/dump-markdown.d.ts +16 -0
- package/dist/utils/dump-markdown.d.ts.map +1 -0
- package/dist/utils/dump-markdown.js +62 -0
- package/dist/utils/dump-markdown.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +20 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +43 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/global-error-handlers.d.ts +7 -0
- package/dist/utils/global-error-handlers.d.ts.map +1 -0
- package/dist/utils/global-error-handlers.js +61 -0
- package/dist/utils/global-error-handlers.js.map +1 -0
- package/dist/utils/kairos-local-artifact-dirs.d.ts +13 -0
- package/dist/utils/kairos-local-artifact-dirs.d.ts.map +1 -0
- package/dist/utils/kairos-local-artifact-dirs.js +35 -0
- package/dist/utils/kairos-local-artifact-dirs.js.map +1 -0
- package/dist/utils/kairos-user-dirs.d.ts +62 -0
- package/dist/utils/kairos-user-dirs.d.ts.map +1 -0
- package/dist/utils/kairos-user-dirs.js +165 -0
- package/dist/utils/kairos-user-dirs.js.map +1 -0
- package/dist/utils/log-core.d.ts +11 -0
- package/dist/utils/log-core.d.ts.map +1 -0
- package/dist/utils/log-core.js +78 -0
- package/dist/utils/log-core.js.map +1 -0
- package/dist/utils/mcp-tool-doc-runtime.d.ts +6 -0
- package/dist/utils/mcp-tool-doc-runtime.d.ts.map +1 -0
- package/dist/utils/mcp-tool-doc-runtime.js +16 -0
- package/dist/utils/mcp-tool-doc-runtime.js.map +1 -0
- package/dist/utils/memory-body.d.ts +7 -0
- package/dist/utils/memory-body.d.ts.map +1 -0
- package/dist/utils/memory-body.js +25 -0
- package/dist/utils/memory-body.js.map +1 -0
- package/dist/utils/memory-store-utils.d.ts +14 -0
- package/dist/utils/memory-store-utils.d.ts.map +1 -0
- package/dist/utils/memory-store-utils.js +83 -0
- package/dist/utils/memory-store-utils.js.map +1 -0
- package/dist/utils/normalize-redis-url.d.ts +2 -0
- package/dist/utils/normalize-redis-url.d.ts.map +1 -0
- package/dist/utils/normalize-redis-url.js +18 -0
- package/dist/utils/normalize-redis-url.js.map +1 -0
- package/dist/utils/protected-space-write-guard.d.ts +3 -0
- package/dist/utils/protected-space-write-guard.d.ts.map +1 -0
- package/dist/utils/protected-space-write-guard.js +14 -0
- package/dist/utils/protected-space-write-guard.js.map +1 -0
- package/dist/utils/protocol-slug.d.ts +39 -0
- package/dist/utils/protocol-slug.d.ts.map +1 -0
- package/dist/utils/protocol-slug.js +74 -0
- package/dist/utils/protocol-slug.js.map +1 -0
- package/dist/utils/qdrant-collection-utils.d.ts +11 -0
- package/dist/utils/qdrant-collection-utils.d.ts.map +1 -0
- package/dist/utils/qdrant-collection-utils.js +65 -0
- package/dist/utils/qdrant-collection-utils.js.map +1 -0
- package/dist/utils/qdrant-query-utils.d.ts +6 -0
- package/dist/utils/qdrant-query-utils.d.ts.map +1 -0
- package/dist/utils/qdrant-query-utils.js +23 -0
- package/dist/utils/qdrant-query-utils.js.map +1 -0
- package/dist/utils/qdrant-utils.d.ts +5 -0
- package/dist/utils/qdrant-utils.d.ts.map +1 -0
- package/dist/utils/qdrant-utils.js +5 -0
- package/dist/utils/qdrant-utils.js.map +1 -0
- package/dist/utils/qdrant-vector-management.d.ts +25 -0
- package/dist/utils/qdrant-vector-management.d.ts.map +1 -0
- package/dist/utils/qdrant-vector-management.js +284 -0
- package/dist/utils/qdrant-vector-management.js.map +1 -0
- package/dist/utils/qdrant-vector-types.d.ts +31 -0
- package/dist/utils/qdrant-vector-types.d.ts.map +1 -0
- package/dist/utils/qdrant-vector-types.js +49 -0
- package/dist/utils/qdrant-vector-types.js.map +1 -0
- package/dist/utils/resolve-space-param.d.ts +28 -0
- package/dist/utils/resolve-space-param.d.ts.map +1 -0
- package/dist/utils/resolve-space-param.js +97 -0
- package/dist/utils/resolve-space-param.js.map +1 -0
- package/dist/utils/space-display.d.ts +12 -0
- package/dist/utils/space-display.d.ts.map +1 -0
- package/dist/utils/space-display.js +45 -0
- package/dist/utils/space-display.js.map +1 -0
- package/dist/utils/space-filter.d.ts +22 -0
- package/dist/utils/space-filter.d.ts.map +1 -0
- package/dist/utils/space-filter.js +35 -0
- package/dist/utils/space-filter.js.map +1 -0
- package/dist/utils/structured-logger.d.ts +53 -0
- package/dist/utils/structured-logger.d.ts.map +1 -0
- package/dist/utils/structured-logger.js +297 -0
- package/dist/utils/structured-logger.js.map +1 -0
- package/dist/utils/tenant-context.d.ts +93 -0
- package/dist/utils/tenant-context.d.ts.map +1 -0
- package/dist/utils/tenant-context.js +247 -0
- package/dist/utils/tenant-context.js.map +1 -0
- package/dist/utils/uri-builder.d.ts +37 -0
- package/dist/utils/uri-builder.d.ts.map +1 -0
- package/dist/utils/uri-builder.js +60 -0
- package/dist/utils/uri-builder.js.map +1 -0
- package/dist/utils/version-compare.d.ts +10 -0
- package/dist/utils/version-compare.d.ts.map +1 -0
- package/dist/utils/version-compare.js +31 -0
- package/dist/utils/version-compare.js.map +1 -0
- package/dist/utils/zod-to-jsonschema.d.ts +4 -0
- package/dist/utils/zod-to-jsonschema.d.ts.map +1 -0
- package/dist/utils/zod-to-jsonschema.js +25 -0
- package/dist/utils/zod-to-jsonschema.js.map +1 -0
- package/package.json +240 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { kairosTrainSimilarAdapterFound } from '../services/metrics/mcp-metrics.js';
|
|
2
|
+
import { structuredLogger } from '../utils/structured-logger.js';
|
|
3
|
+
import { TrainError } from '../tools/train-store.js';
|
|
4
|
+
import { executeTrain } from '../tools/train.js';
|
|
5
|
+
import { trainInputSchema } from '../tools/train_schema.js';
|
|
6
|
+
import { buildAdapterUri } from '../tools/kairos-uri.js';
|
|
7
|
+
import { KAIROS_CREATION_PROTOCOL_SLUG } from '../constants/builtin-search-meta.js';
|
|
8
|
+
import { KairosError } from '../types/index.js';
|
|
9
|
+
import { getSpaceContext, runWithSpaceContextAsync } from '../utils/tenant-context.js';
|
|
10
|
+
import { listWritableSpaceDisplayNames, resolveSpaceParamForContext } from '../utils/resolve-space-param.js';
|
|
11
|
+
const SAFE_TRAIN_DETAIL_KEYS = new Set([
|
|
12
|
+
'missing',
|
|
13
|
+
'must_obey',
|
|
14
|
+
'next_action',
|
|
15
|
+
'existing_memory',
|
|
16
|
+
'similarity_score',
|
|
17
|
+
'content_preview',
|
|
18
|
+
'slug',
|
|
19
|
+
'adapter_id',
|
|
20
|
+
'sample_uri',
|
|
21
|
+
'base_slug',
|
|
22
|
+
'message'
|
|
23
|
+
]);
|
|
24
|
+
function sanitizeTrainDetails(details) {
|
|
25
|
+
const output = {};
|
|
26
|
+
if (!details)
|
|
27
|
+
return output;
|
|
28
|
+
for (const [key, value] of Object.entries(details)) {
|
|
29
|
+
if (!SAFE_TRAIN_DETAIL_KEYS.has(key))
|
|
30
|
+
continue;
|
|
31
|
+
output[key] = value;
|
|
32
|
+
}
|
|
33
|
+
return output;
|
|
34
|
+
}
|
|
35
|
+
function creationAdapterUri() {
|
|
36
|
+
return buildAdapterUri(KAIROS_CREATION_PROTOCOL_SLUG);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* JSON body train (space, source_adapter_uri, etc.). Raw markdown remains POST /api/train/raw.
|
|
40
|
+
*/
|
|
41
|
+
export function setupTrainJsonRoute(app, memoryStore, qdrantService) {
|
|
42
|
+
app.post('/api/train', async (req, res) => {
|
|
43
|
+
try {
|
|
44
|
+
const parsed = trainInputSchema.safeParse(req.body);
|
|
45
|
+
if (!parsed.success) {
|
|
46
|
+
const first = parsed.error.flatten().fieldErrors;
|
|
47
|
+
const msg = Object.keys(first).length
|
|
48
|
+
? Object.entries(first)
|
|
49
|
+
.map(([k, v]) => `${k}: ${Array.isArray(v) ? v.join(', ') : v}`)
|
|
50
|
+
.join('; ')
|
|
51
|
+
: parsed.error.message;
|
|
52
|
+
res.status(400).json({ error: 'INVALID_INPUT', message: msg });
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
structuredLogger.info(`→ POST /api/train (json, model: ${parsed.data.llm_model_id}, force: ${parsed.data.force_update ?? false})`);
|
|
56
|
+
const ctx = getSpaceContext(req);
|
|
57
|
+
const rawSpace = typeof parsed.data.space === 'string' ? parsed.data.space.trim() : '';
|
|
58
|
+
const spaceParam = rawSpace.toLowerCase();
|
|
59
|
+
let resolvedSpaceId;
|
|
60
|
+
if (parsed.data.space === undefined || rawSpace === '') {
|
|
61
|
+
resolvedSpaceId = ctx.defaultWriteSpaceId || ctx.allowedSpaceIds[0] || '';
|
|
62
|
+
}
|
|
63
|
+
else if (spaceParam === 'personal') {
|
|
64
|
+
const r = resolveSpaceParamForContext(ctx, rawSpace);
|
|
65
|
+
if (!r.ok) {
|
|
66
|
+
res.status(400).json({
|
|
67
|
+
error: 'SPACE_NOT_FOUND',
|
|
68
|
+
message: r.message,
|
|
69
|
+
available_spaces: listWritableSpaceDisplayNames(ctx)
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
resolvedSpaceId = r.spaceId;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const r = resolveSpaceParamForContext(ctx, rawSpace);
|
|
77
|
+
if (!r.ok) {
|
|
78
|
+
const errKey = r.code === 'SPACE_READ_ONLY' ? 'SPACE_READ_ONLY' : 'SPACE_NOT_FOUND';
|
|
79
|
+
res.status(400).json({
|
|
80
|
+
error: errKey,
|
|
81
|
+
message: r.message,
|
|
82
|
+
available_spaces: listWritableSpaceDisplayNames(ctx)
|
|
83
|
+
});
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
resolvedSpaceId = r.spaceId;
|
|
87
|
+
}
|
|
88
|
+
// Keep full allowedSpaceIds so source_adapter_uri / slug lookups see group adapters while
|
|
89
|
+
// defaultWriteSpaceId scopes new points to the requested target space.
|
|
90
|
+
const narrowedContext = {
|
|
91
|
+
...ctx,
|
|
92
|
+
defaultWriteSpaceId: resolvedSpaceId
|
|
93
|
+
};
|
|
94
|
+
const result = await runWithSpaceContextAsync(narrowedContext, () => executeTrain(memoryStore, parsed.data, (fn) => fn(), qdrantService));
|
|
95
|
+
res.status(200).json(result);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const err = error;
|
|
99
|
+
if (error instanceof TrainError) {
|
|
100
|
+
res.status(400).json({
|
|
101
|
+
error: error.code,
|
|
102
|
+
message: error.message.replaceAll('Protocol', 'Adapter').replaceAll('protocol', 'adapter'),
|
|
103
|
+
...sanitizeTrainDetails(error.details),
|
|
104
|
+
next_action: `call forward with ${creationAdapterUri()} to open the guided adapter creation flow`
|
|
105
|
+
});
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (error instanceof KairosError) {
|
|
109
|
+
const status = error.statusCode >= 400 && error.statusCode < 600 ? error.statusCode : 500;
|
|
110
|
+
structuredLogger.warn(`✗ Train JSON KairosError ${error.code}: ${error.message}`);
|
|
111
|
+
res.status(status).json({
|
|
112
|
+
error: error.code,
|
|
113
|
+
message: error.message,
|
|
114
|
+
...sanitizeTrainDetails(error.details)
|
|
115
|
+
});
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (err?.code === 'DUPLICATE_ADAPTER' || err?.code === 'DUPLICATE_KEY') {
|
|
119
|
+
structuredLogger.warn(`✗ Duplicate adapter: ${err.message}`);
|
|
120
|
+
res.status(409).json({
|
|
121
|
+
error: 'DUPLICATE_ADAPTER',
|
|
122
|
+
message: 'Adapter with this label already exists. Use force_update: true to overwrite.',
|
|
123
|
+
...sanitizeTrainDetails(err.details)
|
|
124
|
+
});
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (err?.code === 'SIMILAR_MEMORY_FOUND') {
|
|
128
|
+
kairosTrainSimilarAdapterFound.inc({ transport: 'http', tenant_id: 'http' });
|
|
129
|
+
structuredLogger.warn(`✗ Similar memory found: ${err.message}`);
|
|
130
|
+
const d = err.details || {};
|
|
131
|
+
res.status(409).json({
|
|
132
|
+
error: 'SIMILAR_MEMORY_FOUND',
|
|
133
|
+
existing_memory: d['existing_memory'],
|
|
134
|
+
similarity_score: d['similarity_score'],
|
|
135
|
+
message: d['message'] ??
|
|
136
|
+
'A very similar memory already exists by title. Verify it before overwriting.',
|
|
137
|
+
must_obey: d['must_obey'] ?? true,
|
|
138
|
+
next_action: d['next_action'],
|
|
139
|
+
...(d['content_preview'] !== undefined && {
|
|
140
|
+
content_preview: d['content_preview']
|
|
141
|
+
})
|
|
142
|
+
});
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
structuredLogger.error('✗ Train JSON failed', error);
|
|
146
|
+
res.status(500).json({
|
|
147
|
+
error: 'STORE_FAILED',
|
|
148
|
+
message: 'Failed to store adapter markdown'
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=http-api-train-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-api-train-json.js","sourceRoot":"","sources":["../../src/http/http-api-train-json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAGpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE7G,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,SAAS;IACT,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAAC,OAAiC;IAC7D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,eAAe,CAAC,6BAA6B,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAoB,EACpB,WAA8B,EAC9B,aAA6B;IAE7B,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;gBACjD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;oBACnC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;yBAClB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC/D,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;gBACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,gBAAgB,CAAC,IAAI,CACnB,mCAAmC,MAAM,CAAC,IAAI,CAAC,YAAY,YAAY,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,GAAG,CAC5G,CAAC;YACF,MAAM,GAAG,GAAG,eAAe,CAAC,GAAmD,CAAC,CAAC;YACjF,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,eAAuB,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACvD,eAAe,GAAG,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5E,CAAC;iBAAM,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACrD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,iBAAiB;wBACxB,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,gBAAgB,EAAE,6BAA6B,CAAC,GAAG,CAAC;qBACrD,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACrD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACV,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBACpF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,KAAK,EAAE,MAAM;wBACb,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,gBAAgB,EAAE,6BAA6B,CAAC,GAAG,CAAC;qBACrD,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC;YAC9B,CAAC;YACD,0FAA0F;YAC1F,uEAAuE;YACvE,MAAM,eAAe,GAAG;gBACtB,GAAG,GAAG;gBACN,mBAAmB,EAAE,eAAe;aACrC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,eAAe,EAAE,GAAG,EAAE,CAClE,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,CACpE,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAOX,CAAC;YACF,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;gBAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC;oBAC1F,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC;oBACtC,WAAW,EAAE,qBAAqB,kBAAkB,EAAE,2CAA2C;iBAClG,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,MAAM,MAAM,GACV,KAAK,CAAC,UAAU,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC7E,gBAAgB,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClF,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAA8C,CAAC;iBAC9E,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,GAAG,EAAE,IAAI,KAAK,mBAAmB,IAAI,GAAG,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;gBACvE,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,mBAAmB;oBAC1B,OAAO,EAAE,8EAA8E;oBACvF,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;iBACrC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,GAAG,EAAE,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBACzC,8BAA8B,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7E,gBAAgB,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,sBAAsB;oBAC7B,eAAe,EAAG,CAA6B,CAAC,iBAAiB,CAAC;oBAClE,gBAAgB,EAAG,CAA6B,CAAC,kBAAkB,CAAC;oBACpE,OAAO,EACJ,CAA6B,CAAC,SAAS,CAAC;wBACzC,8EAA8E;oBAChF,SAAS,EAAG,CAA6B,CAAC,WAAW,CAAC,IAAI,IAAI;oBAC9D,WAAW,EAAG,CAA6B,CAAC,aAAa,CAAC;oBAC1D,GAAG,CAAE,CAA6B,CAAC,iBAAiB,CAAC,KAAK,SAAS,IAAI;wBACrE,eAAe,EAAG,CAA6B,CAAC,iBAAiB,CAAC;qBACnE,CAAC;iBACH,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,kCAAkC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import { MemoryQdrantStore } from '../services/memory/store.js';
|
|
3
|
+
import type { QdrantService } from '../services/qdrant/service.js';
|
|
4
|
+
/**
|
|
5
|
+
* POST /api/train/raw — raw markdown body; builds {@link TrainInput} from body + query/headers.
|
|
6
|
+
*/
|
|
7
|
+
export declare function setupTrainRawRoute(app: express.Express, memoryStore: MemoryQdrantStore, qdrantService?: QdrantService): void;
|
|
8
|
+
//# sourceMappingURL=http-api-train-raw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-api-train-raw.d.ts","sourceRoot":"","sources":["../../src/http/http-api-train-raw.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAwCnE;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,WAAW,EAAE,iBAAiB,EAC9B,aAAa,CAAC,EAAE,aAAa,QAmK9B"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import getRawBody from 'raw-body';
|
|
2
|
+
import { kairosTrainSimilarAdapterFound } from '../services/metrics/mcp-metrics.js';
|
|
3
|
+
import { structuredLogger } from '../utils/structured-logger.js';
|
|
4
|
+
import { TrainError } from '../tools/train-store.js';
|
|
5
|
+
import { executeTrain } from '../tools/train.js';
|
|
6
|
+
import { trainInputSchema } from '../tools/train_schema.js';
|
|
7
|
+
import { HTTP_TRAIN_RAW_BODY_LIMIT } from '../config.js';
|
|
8
|
+
import { buildAdapterUri } from '../tools/kairos-uri.js';
|
|
9
|
+
import { KAIROS_CREATION_PROTOCOL_SLUG } from '../constants/builtin-search-meta.js';
|
|
10
|
+
import { KairosError } from '../types/index.js';
|
|
11
|
+
import { getSpaceContext, runWithSpaceContextAsync } from '../utils/tenant-context.js';
|
|
12
|
+
import { listWritableSpaceDisplayNames, resolveSpaceParamForContext } from '../utils/resolve-space-param.js';
|
|
13
|
+
const SAFE_TRAIN_RAW_DETAIL_KEYS = new Set([
|
|
14
|
+
'missing',
|
|
15
|
+
'must_obey',
|
|
16
|
+
'next_action',
|
|
17
|
+
'existing_memory',
|
|
18
|
+
'similarity_score',
|
|
19
|
+
'content_preview',
|
|
20
|
+
'slug',
|
|
21
|
+
'adapter_id',
|
|
22
|
+
'sample_uri',
|
|
23
|
+
'base_slug',
|
|
24
|
+
'message'
|
|
25
|
+
]);
|
|
26
|
+
function sanitizeTrainRawDetails(details) {
|
|
27
|
+
if (!details)
|
|
28
|
+
return {};
|
|
29
|
+
const output = {};
|
|
30
|
+
for (const [key, value] of Object.entries(details)) {
|
|
31
|
+
if (!SAFE_TRAIN_RAW_DETAIL_KEYS.has(key))
|
|
32
|
+
continue;
|
|
33
|
+
output[key] = value;
|
|
34
|
+
}
|
|
35
|
+
return output;
|
|
36
|
+
}
|
|
37
|
+
function creationAdapterUri() {
|
|
38
|
+
return buildAdapterUri(KAIROS_CREATION_PROTOCOL_SLUG);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* POST /api/train/raw — raw markdown body; builds {@link TrainInput} from body + query/headers.
|
|
42
|
+
*/
|
|
43
|
+
export function setupTrainRawRoute(app, memoryStore, qdrantService) {
|
|
44
|
+
app.post('/api/train/raw', async (req, res) => {
|
|
45
|
+
try {
|
|
46
|
+
const contentLength = req.headers['content-length'] ? parseInt(req.headers['content-length'], 10) : null;
|
|
47
|
+
const rawBody = await getRawBody(req, {
|
|
48
|
+
limit: HTTP_TRAIN_RAW_BODY_LIMIT,
|
|
49
|
+
encoding: 'utf8',
|
|
50
|
+
...(contentLength !== null && { length: contentLength })
|
|
51
|
+
});
|
|
52
|
+
const markdown = String(rawBody).trim();
|
|
53
|
+
if (!markdown) {
|
|
54
|
+
res.status(400).json({ error: 'INVALID_INPUT', message: 'Empty markdown content' });
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const llm_model_id = req.query['llm_model_id'] ||
|
|
58
|
+
req.headers['x-llm-model-id'] ||
|
|
59
|
+
req.headers['user-agent'] ||
|
|
60
|
+
'http-api';
|
|
61
|
+
const force_update = req.query['force'] === 'true' || req.headers['x-force-update'] === 'true';
|
|
62
|
+
const protocol_version = req.query['protocol_version'] || req.headers['x-protocol-version'] || undefined;
|
|
63
|
+
const space = req.query['space'] ||
|
|
64
|
+
req.headers['x-space'] ||
|
|
65
|
+
undefined;
|
|
66
|
+
// review_evidence can be passed as JSON query param or header (raw markdown body has no field for it)
|
|
67
|
+
const reviewEvidenceRaw = req.query['review_evidence'] ||
|
|
68
|
+
req.headers['x-review-evidence'] ||
|
|
69
|
+
undefined;
|
|
70
|
+
let reviewEvidence;
|
|
71
|
+
if (reviewEvidenceRaw) {
|
|
72
|
+
try {
|
|
73
|
+
const parsed_ = JSON.parse(reviewEvidenceRaw);
|
|
74
|
+
if (parsed_ && typeof parsed_.verdict_file === 'string' && typeof parsed_.exit_code === 'number' && typeof parsed_.stdout === 'string') {
|
|
75
|
+
reviewEvidence = parsed_;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch { /* ignore malformed review_evidence */ }
|
|
79
|
+
}
|
|
80
|
+
const bodyInput = {
|
|
81
|
+
content: markdown,
|
|
82
|
+
llm_model_id,
|
|
83
|
+
force_update,
|
|
84
|
+
...(protocol_version && { protocol_version }),
|
|
85
|
+
...(space ? { space } : {}),
|
|
86
|
+
...(reviewEvidence ? { review_evidence: reviewEvidence } : {})
|
|
87
|
+
};
|
|
88
|
+
const parsed = trainInputSchema.safeParse(bodyInput);
|
|
89
|
+
if (!parsed.success) {
|
|
90
|
+
const first = parsed.error.flatten().fieldErrors;
|
|
91
|
+
const msg = Object.keys(first).length
|
|
92
|
+
? Object.entries(first)
|
|
93
|
+
.map(([k, v]) => `${k}: ${Array.isArray(v) ? v.join(', ') : v}`)
|
|
94
|
+
.join('; ')
|
|
95
|
+
: parsed.error.message;
|
|
96
|
+
res.status(400).json({ error: 'INVALID_INPUT', message: msg });
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
structuredLogger.info(`→ POST /api/train/raw (${markdown.length} bytes, model: ${parsed.data.llm_model_id}, force: ${parsed.data.force_update})`);
|
|
100
|
+
const ctx = getSpaceContext(req);
|
|
101
|
+
const rawSpace = typeof parsed.data.space === 'string' ? parsed.data.space.trim() : '';
|
|
102
|
+
const spaceParam = rawSpace.toLowerCase();
|
|
103
|
+
let resolvedSpaceId;
|
|
104
|
+
if (parsed.data.space === undefined || rawSpace === '') {
|
|
105
|
+
resolvedSpaceId = ctx.defaultWriteSpaceId || ctx.allowedSpaceIds[0] || '';
|
|
106
|
+
}
|
|
107
|
+
else if (spaceParam === 'personal') {
|
|
108
|
+
const r = resolveSpaceParamForContext(ctx, rawSpace);
|
|
109
|
+
if (!r.ok) {
|
|
110
|
+
res.status(400).json({
|
|
111
|
+
error: 'SPACE_NOT_FOUND',
|
|
112
|
+
message: r.message,
|
|
113
|
+
available_spaces: listWritableSpaceDisplayNames(ctx)
|
|
114
|
+
});
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
resolvedSpaceId = r.spaceId;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const r = resolveSpaceParamForContext(ctx, rawSpace);
|
|
121
|
+
if (!r.ok) {
|
|
122
|
+
const errKey = r.code === 'SPACE_READ_ONLY' ? 'SPACE_READ_ONLY' : 'SPACE_NOT_FOUND';
|
|
123
|
+
res.status(400).json({
|
|
124
|
+
error: errKey,
|
|
125
|
+
message: r.message,
|
|
126
|
+
available_spaces: listWritableSpaceDisplayNames(ctx)
|
|
127
|
+
});
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
resolvedSpaceId = r.spaceId;
|
|
131
|
+
}
|
|
132
|
+
const narrowedContext = {
|
|
133
|
+
...ctx,
|
|
134
|
+
defaultWriteSpaceId: resolvedSpaceId
|
|
135
|
+
};
|
|
136
|
+
const result = await runWithSpaceContextAsync(narrowedContext, () => executeTrain(memoryStore, parsed.data, (fn) => fn(), qdrantService));
|
|
137
|
+
res.status(200).json(result);
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
const err = error;
|
|
141
|
+
if (err?.status === 413 || err?.statusCode === 413 || err?.type === 'entity.too.large') {
|
|
142
|
+
res.status(413).json({
|
|
143
|
+
error: 'PAYLOAD_TOO_LARGE',
|
|
144
|
+
message: 'Request body exceeds the configured size limit'
|
|
145
|
+
});
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (error instanceof TrainError) {
|
|
149
|
+
res.status(400).json({
|
|
150
|
+
error: error.code,
|
|
151
|
+
message: error.message.replaceAll('Protocol', 'Adapter').replaceAll('protocol', 'adapter'),
|
|
152
|
+
...sanitizeTrainRawDetails(error.details),
|
|
153
|
+
next_action: `call forward with ${creationAdapterUri()} to open the guided adapter creation flow`
|
|
154
|
+
});
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (error instanceof KairosError) {
|
|
158
|
+
const status = error.statusCode >= 400 && error.statusCode < 600 ? error.statusCode : 500;
|
|
159
|
+
structuredLogger.warn(`✗ Train raw KairosError ${error.code}: ${error.message}`);
|
|
160
|
+
res.status(status).json({
|
|
161
|
+
error: error.code,
|
|
162
|
+
message: error.message,
|
|
163
|
+
...sanitizeTrainRawDetails(error.details)
|
|
164
|
+
});
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (err?.code === 'DUPLICATE_ADAPTER' || err?.code === 'DUPLICATE_KEY') {
|
|
168
|
+
structuredLogger.warn(`✗ Duplicate adapter: ${err.message}`);
|
|
169
|
+
res.status(409).json({
|
|
170
|
+
error: 'DUPLICATE_ADAPTER',
|
|
171
|
+
message: 'Adapter with this label already exists. Use --force flag to overwrite.',
|
|
172
|
+
...sanitizeTrainRawDetails(err.details)
|
|
173
|
+
});
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
if (err?.code === 'SIMILAR_MEMORY_FOUND') {
|
|
177
|
+
kairosTrainSimilarAdapterFound.inc({ transport: 'http', tenant_id: 'http' });
|
|
178
|
+
structuredLogger.warn(`✗ Similar memory found: ${err.message}`);
|
|
179
|
+
const d = err.details || {};
|
|
180
|
+
res.status(409).json({
|
|
181
|
+
error: 'SIMILAR_MEMORY_FOUND',
|
|
182
|
+
existing_memory: d.existing_memory,
|
|
183
|
+
similarity_score: d.similarity_score,
|
|
184
|
+
message: d.message ?? 'A very similar memory already exists by title. Verify it before overwriting.',
|
|
185
|
+
must_obey: d.must_obey ?? true,
|
|
186
|
+
next_action: d.next_action,
|
|
187
|
+
...(d.content_preview !== undefined && { content_preview: d.content_preview })
|
|
188
|
+
});
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
structuredLogger.error('✗ Store failed', error);
|
|
192
|
+
res.status(500).json({
|
|
193
|
+
error: 'STORE_FAILED',
|
|
194
|
+
message: 'Failed to store adapter content'
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=http-api-train-raw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-api-train-raw.js","sourceRoot":"","sources":["../../src/http/http-api-train-raw.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import type { QdrantService } from '../services/qdrant/service.js';
|
|
3
|
+
/**
|
|
4
|
+
* Set up API route for tune.
|
|
5
|
+
*/
|
|
6
|
+
export declare function setupUpdateRoute(app: express.Express, qdrantService: QdrantService): void;
|
|
7
|
+
//# sourceMappingURL=http-api-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-api-update.d.ts","sourceRoot":"","sources":["../../src/http/http-api-update.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAKnE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,QAuBlF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { structuredLogger } from '../utils/structured-logger.js';
|
|
2
|
+
import { executeTune } from '../tools/tune.js';
|
|
3
|
+
import { tuneInputSchema } from '../tools/tune_schema.js';
|
|
4
|
+
import { runHttpApiWithSpaceContext } from '../utils/tenant-context.js';
|
|
5
|
+
/**
|
|
6
|
+
* Set up API route for tune.
|
|
7
|
+
*/
|
|
8
|
+
export function setupUpdateRoute(app, qdrantService) {
|
|
9
|
+
app.post('/api/tune', async (req, res) => {
|
|
10
|
+
try {
|
|
11
|
+
const input = tuneInputSchema.safeParse(req.body);
|
|
12
|
+
if (!input.success) {
|
|
13
|
+
res.status(400).json({
|
|
14
|
+
error: 'INVALID_INPUT',
|
|
15
|
+
message: input.error.message ?? 'uris is required and must be a non-empty array'
|
|
16
|
+
});
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
structuredLogger.info(`→ POST /api/tune (${input.data.uris.length} URI(s))`);
|
|
20
|
+
const result = await runHttpApiWithSpaceContext(req, () => executeTune(qdrantService, input.data));
|
|
21
|
+
structuredLogger.info(`✓ tune completed (${result.total_updated} updated, ${result.total_failed} failed)`);
|
|
22
|
+
res.status(200).json(result);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
structuredLogger.error('✗ tune failed', error);
|
|
26
|
+
res.status(500).json({
|
|
27
|
+
error: 'TUNE_FAILED',
|
|
28
|
+
message: error instanceof Error ? error.message : 'Failed to update adapter layers'
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=http-api-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-api-update.js","sourceRoot":"","sources":["../../src/http/http-api-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAoB,EAAE,aAA4B;IACjF,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,gDAAgD;iBACjF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC;YAC7E,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACnG,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,YAAY,UAAU,CAAC,CAAC;YAC3G,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gBAAgB,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC;aACpF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OIDC callback: exchange Keycloak authorization code for tokens, set session cookie, redirect.
|
|
3
|
+
*/
|
|
4
|
+
import express from 'express';
|
|
5
|
+
export declare function resolveSessionMaxAgeSec(params: {
|
|
6
|
+
nowSec: number;
|
|
7
|
+
sessionMaxAgeSecFallback: number;
|
|
8
|
+
tokenExpiresIn: number | null;
|
|
9
|
+
accessTokenExp: number | null;
|
|
10
|
+
}): number;
|
|
11
|
+
export declare function setupAuthCallback(app: express.Express): void;
|
|
12
|
+
//# sourceMappingURL=http-auth-callback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-auth-callback.d.ts","sourceRoot":"","sources":["../../src/http/http-auth-callback.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAC;AA8B9B,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GAAG,MAAM,CAgBT;AA6BD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAkJ5D"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import crypto from 'crypto';
|
|
2
|
+
import { toBase64url } from '@exodus/bytes/base64.js';
|
|
3
|
+
import { utf8fromString } from '@exodus/bytes/utf8.js';
|
|
4
|
+
import { AUTH_ENABLED, KEYCLOAK_URL, KEYCLOAK_INTERNAL_URL, KEYCLOAK_REALM, KEYCLOAK_CLIENT_ID, AUTH_CALLBACK_BASE_URL, SESSION_SECRET, SESSION_MAX_AGE_SEC, OIDC_GROUPS_ALLOWLIST } from '../config.js';
|
|
5
|
+
import { structuredLogger } from '../utils/structured-logger.js';
|
|
6
|
+
import { buildOidcEndSessionRedirectUrl, redirectBrowserToOidcLogin } from './http-auth-oidc-redirect.js';
|
|
7
|
+
import { oidcStateStore } from '../services/oidc-state-store.js';
|
|
8
|
+
import { peekOidcIdTokenHintFromSession, SESSION_COOKIE_NAME } from './http-auth-middleware.js';
|
|
9
|
+
import { applyOidcGroupsAllowlist, decodeJwtPayloadSegment, mergeCallbackTokenPayloads } from './oidc-profile-claims.js';
|
|
10
|
+
export function resolveSessionMaxAgeSec(params) {
|
|
11
|
+
const { nowSec, sessionMaxAgeSecFallback, tokenExpiresIn, accessTokenExp } = params;
|
|
12
|
+
const fromExpiresIn = tokenExpiresIn && Number.isFinite(tokenExpiresIn) && tokenExpiresIn > 120
|
|
13
|
+
? Math.max(60, Math.floor(tokenExpiresIn) - 60)
|
|
14
|
+
: null;
|
|
15
|
+
if (fromExpiresIn)
|
|
16
|
+
return fromExpiresIn;
|
|
17
|
+
const fromJwtExp = accessTokenExp && Number.isFinite(accessTokenExp) && accessTokenExp > nowSec + 120
|
|
18
|
+
? Math.max(60, Math.floor(accessTokenExp - nowSec) - 60)
|
|
19
|
+
: null;
|
|
20
|
+
if (fromJwtExp)
|
|
21
|
+
return fromJwtExp;
|
|
22
|
+
return sessionMaxAgeSecFallback;
|
|
23
|
+
}
|
|
24
|
+
function signSession(payload) {
|
|
25
|
+
const payloadB64 = toBase64url(utf8fromString(JSON.stringify(payload)));
|
|
26
|
+
const sig = toBase64url(new Uint8Array(crypto.createHmac('sha256', SESSION_SECRET).update(payloadB64).digest()));
|
|
27
|
+
return `${payloadB64}.${sig}`;
|
|
28
|
+
}
|
|
29
|
+
const useSecureCookie = AUTH_CALLBACK_BASE_URL.trim().toLowerCase().startsWith('https://');
|
|
30
|
+
/** Cookie options must match those used when setting the session (Path=/) so the browser clears it. */
|
|
31
|
+
const COOKIE_CLEAR_OPTIONS = { path: '/', httpOnly: true, sameSite: 'lax', secure: useSecureCookie };
|
|
32
|
+
/** Keycloak post_logout_redirect_uri target: immediately starts a new OIDC login (no logged-out landing in our app). */
|
|
33
|
+
const AUTH_CONTINUE_SIGNIN_PATH = '/auth/continue-signin';
|
|
34
|
+
function redirectContinueSignin(_req, res) {
|
|
35
|
+
if (AUTH_ENABLED && redirectBrowserToOidcLogin(res)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
res.redirect(302, '/ui/');
|
|
39
|
+
}
|
|
40
|
+
export function setupAuthCallback(app) {
|
|
41
|
+
// Base /auth: redirect to UI (browser) or 404 for API
|
|
42
|
+
app.get('/auth', (_req, res) => {
|
|
43
|
+
res.redirect(302, '/ui');
|
|
44
|
+
});
|
|
45
|
+
/** Older callback target; redirect for bookmarks and docs that still link here. */
|
|
46
|
+
app.get('/auth/success', (_req, res) => {
|
|
47
|
+
res.redirect(302, '/ui/');
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Clear Kairos session, end Keycloak SSO (RP-initiated logout), then continue at continue-signin → OIDC login.
|
|
51
|
+
* id_token_hint (when present in session) avoids Keycloak static logged-out confirmation where supported.
|
|
52
|
+
*/
|
|
53
|
+
app.get('/auth/logout', (req, res) => {
|
|
54
|
+
const idHint = peekOidcIdTokenHintFromSession(req);
|
|
55
|
+
res.clearCookie(SESSION_COOKIE_NAME, COOKIE_CLEAR_OPTIONS);
|
|
56
|
+
const base = AUTH_CALLBACK_BASE_URL?.trim().replace(/\/$/, '');
|
|
57
|
+
if (AUTH_ENABLED && base) {
|
|
58
|
+
const resume = `${base}${AUTH_CONTINUE_SIGNIN_PATH}`;
|
|
59
|
+
const endSession = buildOidcEndSessionRedirectUrl(resume, idHint);
|
|
60
|
+
if (endSession) {
|
|
61
|
+
res.redirect(302, endSession);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (AUTH_ENABLED && redirectBrowserToOidcLogin(res)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
res.redirect(302, '/ui/');
|
|
69
|
+
});
|
|
70
|
+
app.get(AUTH_CONTINUE_SIGNIN_PATH, redirectContinueSignin);
|
|
71
|
+
/** Optional IdP post-logout redirect target (same as continue-signin). */
|
|
72
|
+
app.get('/auth/logged-out', redirectContinueSignin);
|
|
73
|
+
app.get('/auth/callback', async (req, res) => {
|
|
74
|
+
if (!AUTH_ENABLED || !KEYCLOAK_URL || !SESSION_SECRET || !AUTH_CALLBACK_BASE_URL) {
|
|
75
|
+
res.status(503).json({
|
|
76
|
+
error: 'Auth not configured',
|
|
77
|
+
message: 'AUTH_ENABLED, KEYCLOAK_URL, SESSION_SECRET, and AUTH_CALLBACK_BASE_URL are required. Set in .env (see docs/install/README.md).'
|
|
78
|
+
});
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const { code, state } = req.query;
|
|
82
|
+
if (!code || !state) {
|
|
83
|
+
res.redirect(302, '/?error=missing_code_or_state');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const entry = await oidcStateStore.consume(state);
|
|
87
|
+
if (!entry) {
|
|
88
|
+
structuredLogger.info('Auth callback: invalid or expired state');
|
|
89
|
+
res.redirect(302, '/?error=invalid_state');
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const keycloakBase = (KEYCLOAK_INTERNAL_URL || KEYCLOAK_URL).replace(/\/$/, '');
|
|
93
|
+
const redirectUri = `${AUTH_CALLBACK_BASE_URL.replace(/\/$/, '')}/auth/callback`;
|
|
94
|
+
const body = new URLSearchParams({
|
|
95
|
+
grant_type: 'authorization_code',
|
|
96
|
+
client_id: KEYCLOAK_CLIENT_ID,
|
|
97
|
+
code,
|
|
98
|
+
redirect_uri: redirectUri,
|
|
99
|
+
code_verifier: entry.codeVerifier
|
|
100
|
+
});
|
|
101
|
+
let tokenRes;
|
|
102
|
+
try {
|
|
103
|
+
tokenRes = await fetch(`${keycloakBase}/realms/${KEYCLOAK_REALM}/protocol/openid-connect/token`, {
|
|
104
|
+
method: 'POST',
|
|
105
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
106
|
+
body: body.toString()
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
structuredLogger.error('Auth callback: token request failed', err);
|
|
111
|
+
res.redirect(302, '/?error=token_request_failed');
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (!tokenRes.ok) {
|
|
115
|
+
const text = await tokenRes.text();
|
|
116
|
+
structuredLogger.info(`Auth callback: token error ${JSON.stringify({ status: tokenRes.status, body: text })}`);
|
|
117
|
+
res.redirect(302, '/?error=token_exchange_failed');
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const tokens = (await tokenRes.json());
|
|
121
|
+
const idToken = typeof tokens.id_token === 'string' ? tokens.id_token : undefined;
|
|
122
|
+
const accessToken = typeof tokens.access_token === 'string' ? tokens.access_token : undefined;
|
|
123
|
+
if (!idToken && !accessToken) {
|
|
124
|
+
structuredLogger.info('Auth callback: no id_token or access_token in response');
|
|
125
|
+
res.redirect(302, '/?error=no_tokens');
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const tokenExpiresIn = typeof tokens.expires_in === 'number' && Number.isFinite(tokens.expires_in) ? tokens.expires_in : null;
|
|
129
|
+
const idPayload = idToken ? decodeJwtPayloadSegment(idToken) : null;
|
|
130
|
+
const accessPayload = accessToken ? decodeJwtPayloadSegment(accessToken) : null;
|
|
131
|
+
if (idPayload === null && accessPayload === null) {
|
|
132
|
+
structuredLogger.info('Auth callback: token payload parse failed');
|
|
133
|
+
res.redirect(302, '/?error=invalid_token_payload');
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const mergedResult = mergeCallbackTokenPayloads({
|
|
137
|
+
idPayload,
|
|
138
|
+
accessPayload,
|
|
139
|
+
fallbackRealm: KEYCLOAK_REALM
|
|
140
|
+
});
|
|
141
|
+
if (!mergedResult.ok) {
|
|
142
|
+
structuredLogger.info(`Auth callback: merge failed ${mergedResult.error}`);
|
|
143
|
+
const err = mergedResult.error === 'mismatched_sub' ? 'mismatched_token_sub' : 'invalid_token_sub';
|
|
144
|
+
res.redirect(302, `/?error=${err}`);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const { merged } = mergedResult;
|
|
148
|
+
merged.groups = applyOidcGroupsAllowlist(merged.groups, OIDC_GROUPS_ALLOWLIST);
|
|
149
|
+
const nowSec = Math.floor(Date.now() / 1000);
|
|
150
|
+
const accessTokenExp = accessPayload && typeof accessPayload['exp'] === 'number' && Number.isFinite(accessPayload['exp'])
|
|
151
|
+
? accessPayload['exp']
|
|
152
|
+
: null;
|
|
153
|
+
const sessionMaxAgeSec = resolveSessionMaxAgeSec({
|
|
154
|
+
nowSec,
|
|
155
|
+
sessionMaxAgeSecFallback: SESSION_MAX_AGE_SEC,
|
|
156
|
+
tokenExpiresIn,
|
|
157
|
+
accessTokenExp
|
|
158
|
+
});
|
|
159
|
+
if (process.env['AUTH_TRACE'] === 'true' || process.env['LOG_LEVEL'] === 'trace') {
|
|
160
|
+
structuredLogger.info(`[auth] TRACE callback ttl sessionMaxAgeSec=${sessionMaxAgeSec} tokenExpiresIn=${tokenExpiresIn ?? 'missing'} accessTokenExp=${accessTokenExp ?? 'missing'}`);
|
|
161
|
+
}
|
|
162
|
+
const exp = nowSec + sessionMaxAgeSec;
|
|
163
|
+
const sessionPayload = {
|
|
164
|
+
...merged,
|
|
165
|
+
exp,
|
|
166
|
+
...(idToken ? { oidc_id_token: idToken } : {})
|
|
167
|
+
};
|
|
168
|
+
const cookieValue = signSession(sessionPayload);
|
|
169
|
+
res.setHeader('Set-Cookie', [
|
|
170
|
+
`${SESSION_COOKIE_NAME}=${encodeURIComponent(cookieValue)}; Path=/; HttpOnly; SameSite=Lax; Max-Age=${sessionMaxAgeSec}${useSecureCookie ? '; Secure' : ''}`
|
|
171
|
+
]);
|
|
172
|
+
res.redirect(302, '/ui/');
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=http-auth-callback.js.map
|