neotoma 0.18.4 → 0.18.5
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/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +66 -0
- package/dist/actions.js.map +1 -1
- package/dist/cli/activate.d.ts +72 -0
- package/dist/cli/activate.d.ts.map +1 -0
- package/dist/cli/activate.js +160 -0
- package/dist/cli/activate.js.map +1 -0
- package/dist/cli/auth_keygen.d.ts +11 -0
- package/dist/cli/auth_keygen.d.ts.map +1 -0
- package/dist/cli/auth_keygen.js +110 -0
- package/dist/cli/auth_keygen.js.map +1 -0
- package/dist/cli/bootstrap.js +0 -0
- package/dist/cli/packs.d.ts +15 -0
- package/dist/cli/packs.d.ts.map +1 -0
- package/dist/cli/packs.js +156 -0
- package/dist/cli/packs.js.map +1 -0
- package/dist/cli/triage.d.ts +33 -0
- package/dist/cli/triage.d.ts.map +1 -0
- package/dist/cli/triage.js +251 -0
- package/dist/cli/triage.js.map +1 -0
- package/dist/docs/subsystems/inspector_embed_cross_origin.md +163 -0
- package/dist/docs/testing/automated_test_catalog.md +8 -6
- package/dist/services/activation/stage_zero_five.d.ts +62 -0
- package/dist/services/activation/stage_zero_five.d.ts.map +1 -0
- package/dist/services/activation/stage_zero_five.js +126 -0
- package/dist/services/activation/stage_zero_five.js.map +1 -0
- package/dist/services/activation/user_preference.d.ts +110 -0
- package/dist/services/activation/user_preference.d.ts.map +1 -0
- package/dist/services/activation/user_preference.js +98 -0
- package/dist/services/activation/user_preference.js.map +1 -0
- package/dist/services/activation/vertical_detection.d.ts +78 -0
- package/dist/services/activation/vertical_detection.d.ts.map +1 -0
- package/dist/services/activation/vertical_detection.js +219 -0
- package/dist/services/activation/vertical_detection.js.map +1 -0
- package/dist/services/app_mount.d.ts +166 -0
- package/dist/services/app_mount.d.ts.map +1 -0
- package/dist/services/app_mount.js +626 -0
- package/dist/services/app_mount.js.map +1 -0
- package/dist/services/bundled_pages/html_shell.d.ts +118 -0
- package/dist/services/bundled_pages/html_shell.d.ts.map +1 -0
- package/dist/services/bundled_pages/html_shell.js +242 -0
- package/dist/services/bundled_pages/html_shell.js.map +1 -0
- package/dist/services/bundled_pages/tokens.d.ts +496 -0
- package/dist/services/bundled_pages/tokens.d.ts.map +1 -0
- package/dist/services/bundled_pages/tokens.js +261 -0
- package/dist/services/bundled_pages/tokens.js.map +1 -0
- package/dist/services/compliance/alerting.d.ts +123 -0
- package/dist/services/compliance/alerting.d.ts.map +1 -0
- package/dist/services/compliance/alerting.js +169 -0
- package/dist/services/compliance/alerting.js.map +1 -0
- package/dist/services/compliance/historical_backfill.d.ts +74 -0
- package/dist/services/compliance/historical_backfill.d.ts.map +1 -0
- package/dist/services/compliance/historical_backfill.js +244 -0
- package/dist/services/compliance/historical_backfill.js.map +1 -0
- package/dist/services/compliance/renderer.d.ts +21 -0
- package/dist/services/compliance/renderer.d.ts.map +1 -0
- package/dist/services/compliance/renderer.js +208 -0
- package/dist/services/compliance/renderer.js.map +1 -0
- package/dist/services/compliance/routes.d.ts +55 -0
- package/dist/services/compliance/routes.d.ts.map +1 -0
- package/dist/services/compliance/routes.js +212 -0
- package/dist/services/compliance/routes.js.map +1 -0
- package/dist/services/docs/site_page_frontmatter.d.ts +58 -0
- package/dist/services/docs/site_page_frontmatter.d.ts.map +1 -0
- package/dist/services/docs/site_page_frontmatter.js +106 -0
- package/dist/services/docs/site_page_frontmatter.js.map +1 -0
- package/dist/services/docs/site_page_index_builder.d.ts +49 -0
- package/dist/services/docs/site_page_index_builder.d.ts.map +1 -0
- package/dist/services/docs/site_page_index_builder.js +152 -0
- package/dist/services/docs/site_page_index_builder.js.map +1 -0
- package/dist/services/docs/site_pages_route.d.ts +33 -0
- package/dist/services/docs/site_pages_route.d.ts.map +1 -0
- package/dist/services/docs/site_pages_route.js +124 -0
- package/dist/services/docs/site_pages_route.js.map +1 -0
- package/dist/services/docs_bundle/frontmatter.d.ts +26 -0
- package/dist/services/docs_bundle/frontmatter.d.ts.map +1 -0
- package/dist/services/docs_bundle/frontmatter.js +50 -0
- package/dist/services/docs_bundle/frontmatter.js.map +1 -0
- package/dist/services/docs_bundle/loader.d.ts +28 -0
- package/dist/services/docs_bundle/loader.d.ts.map +1 -0
- package/dist/services/docs_bundle/loader.js +91 -0
- package/dist/services/docs_bundle/loader.js.map +1 -0
- package/dist/services/docs_bundle/render_html.d.ts +15 -0
- package/dist/services/docs_bundle/render_html.d.ts.map +1 -0
- package/dist/services/docs_bundle/render_html.js +48 -0
- package/dist/services/docs_bundle/render_html.js.map +1 -0
- package/dist/services/docs_bundle/types.d.ts +73 -0
- package/dist/services/docs_bundle/types.d.ts.map +1 -0
- package/dist/services/docs_bundle/types.js +50 -0
- package/dist/services/docs_bundle/types.js.map +1 -0
- package/dist/services/docs_install/loader.d.ts +25 -0
- package/dist/services/docs_install/loader.d.ts.map +1 -0
- package/dist/services/docs_install/loader.js +63 -0
- package/dist/services/docs_install/loader.js.map +1 -0
- package/dist/services/docs_install/renderer.d.ts +40 -0
- package/dist/services/docs_install/renderer.d.ts.map +1 -0
- package/dist/services/docs_install/renderer.js +323 -0
- package/dist/services/docs_install/renderer.js.map +1 -0
- package/dist/services/docs_install/routes.d.ts +20 -0
- package/dist/services/docs_install/routes.d.ts.map +1 -0
- package/dist/services/docs_install/routes.js +117 -0
- package/dist/services/docs_install/routes.js.map +1 -0
- package/dist/services/embed_cross_origin.d.ts +95 -0
- package/dist/services/embed_cross_origin.d.ts.map +1 -0
- package/dist/services/embed_cross_origin.js +174 -0
- package/dist/services/embed_cross_origin.js.map +1 -0
- package/dist/services/entity_submission/seed_product_feedback_schema.d.ts +11 -0
- package/dist/services/entity_submission/seed_product_feedback_schema.d.ts.map +1 -0
- package/dist/services/entity_submission/seed_product_feedback_schema.js +45 -0
- package/dist/services/entity_submission/seed_product_feedback_schema.js.map +1 -0
- package/dist/services/feedback/activation.d.ts +20 -0
- package/dist/services/feedback/activation.d.ts.map +1 -0
- package/dist/services/feedback/activation.js +66 -0
- package/dist/services/feedback/activation.js.map +1 -0
- package/dist/services/feedback/admin_proxy.d.ts +73 -0
- package/dist/services/feedback/admin_proxy.d.ts.map +1 -0
- package/dist/services/feedback/admin_proxy.js +292 -0
- package/dist/services/feedback/admin_proxy.js.map +1 -0
- package/dist/services/feedback/admin_session.d.ts +36 -0
- package/dist/services/feedback/admin_session.d.ts.map +1 -0
- package/dist/services/feedback/admin_session.js +147 -0
- package/dist/services/feedback/admin_session.js.map +1 -0
- package/dist/services/feedback/local_store.d.ts +72 -0
- package/dist/services/feedback/local_store.d.ts.map +1 -0
- package/dist/services/feedback/local_store.js +95 -0
- package/dist/services/feedback/local_store.js.map +1 -0
- package/dist/services/feedback/mirror_local_to_entity.d.ts +42 -0
- package/dist/services/feedback/mirror_local_to_entity.d.ts.map +1 -0
- package/dist/services/feedback/mirror_local_to_entity.js +71 -0
- package/dist/services/feedback/mirror_local_to_entity.js.map +1 -0
- package/dist/services/feedback/neotoma_payload.d.ts +108 -0
- package/dist/services/feedback/neotoma_payload.d.ts.map +1 -0
- package/dist/services/feedback/neotoma_payload.js +169 -0
- package/dist/services/feedback/neotoma_payload.js.map +1 -0
- package/dist/services/feedback/next_check.d.ts +4 -0
- package/dist/services/feedback/next_check.d.ts.map +1 -0
- package/dist/services/feedback/next_check.js +22 -0
- package/dist/services/feedback/next_check.js.map +1 -0
- package/dist/services/feedback/seed_schema.d.ts +52 -0
- package/dist/services/feedback/seed_schema.d.ts.map +1 -0
- package/dist/services/feedback/seed_schema.js +160 -0
- package/dist/services/feedback/seed_schema.js.map +1 -0
- package/dist/services/feedback/types.d.ts +134 -0
- package/dist/services/feedback/types.d.ts.map +1 -0
- package/dist/services/feedback/types.js +23 -0
- package/dist/services/feedback/types.js.map +1 -0
- package/dist/services/feedback/upgrade_guidance_map.d.ts +24 -0
- package/dist/services/feedback/upgrade_guidance_map.d.ts.map +1 -0
- package/dist/services/feedback/upgrade_guidance_map.js +39 -0
- package/dist/services/feedback/upgrade_guidance_map.js.map +1 -0
- package/dist/services/feedback/verification_request.d.ts +14 -0
- package/dist/services/feedback/verification_request.d.ts.map +1 -0
- package/dist/services/feedback/verification_request.js +33 -0
- package/dist/services/feedback/verification_request.js.map +1 -0
- package/dist/services/feedback_transport.d.ts +15 -0
- package/dist/services/feedback_transport.d.ts.map +1 -0
- package/dist/services/feedback_transport.js +31 -0
- package/dist/services/feedback_transport.js.map +1 -0
- package/dist/services/feedback_transport_http.d.ts +14 -0
- package/dist/services/feedback_transport_http.d.ts.map +1 -0
- package/dist/services/feedback_transport_http.js +40 -0
- package/dist/services/feedback_transport_http.js.map +1 -0
- package/dist/services/feedback_transport_local.d.ts +20 -0
- package/dist/services/feedback_transport_local.d.ts.map +1 -0
- package/dist/services/feedback_transport_local.js +152 -0
- package/dist/services/feedback_transport_local.js.map +1 -0
- package/dist/services/issues/syncIssuesFromGitHub.d.ts +35 -0
- package/dist/services/issues/syncIssuesFromGitHub.d.ts.map +1 -0
- package/dist/services/issues/syncIssuesFromGitHub.js +193 -0
- package/dist/services/issues/syncIssuesFromGitHub.js.map +1 -0
- package/dist/services/oauth_pages/render.d.ts +25 -0
- package/dist/services/oauth_pages/render.d.ts.map +1 -0
- package/dist/services/oauth_pages/render.js +235 -0
- package/dist/services/oauth_pages/render.js.map +1 -0
- package/dist/services/root_landing/auth_overview.d.ts +60 -0
- package/dist/services/root_landing/auth_overview.d.ts.map +1 -0
- package/dist/services/root_landing/auth_overview.js +86 -0
- package/dist/services/root_landing/auth_overview.js.map +1 -0
- package/dist/services/root_landing/cli_overview.d.ts +34 -0
- package/dist/services/root_landing/cli_overview.d.ts.map +1 -0
- package/dist/services/root_landing/cli_overview.js +123 -0
- package/dist/services/root_landing/cli_overview.js.map +1 -0
- package/dist/services/root_landing/http_api_overview.d.ts +34 -0
- package/dist/services/root_landing/http_api_overview.d.ts.map +1 -0
- package/dist/services/root_landing/http_api_overview.js +110 -0
- package/dist/services/root_landing/http_api_overview.js.map +1 -0
- package/dist/services/root_landing/mcp_overview.d.ts +34 -0
- package/dist/services/root_landing/mcp_overview.d.ts.map +1 -0
- package/dist/services/root_landing/mcp_overview.js +133 -0
- package/dist/services/root_landing/mcp_overview.js.map +1 -0
- package/dist/services/sandbox/inspector_redirect.d.ts +41 -0
- package/dist/services/sandbox/inspector_redirect.d.ts.map +1 -0
- package/dist/services/sandbox/inspector_redirect.js +59 -0
- package/dist/services/sandbox/inspector_redirect.js.map +1 -0
- package/dist/services/timeline_user_query.d.ts +22 -0
- package/dist/services/timeline_user_query.d.ts.map +1 -0
- package/dist/services/timeline_user_query.js +60 -0
- package/dist/services/timeline_user_query.js.map +1 -0
- package/dist/services/usage_stats.d.ts +18 -0
- package/dist/services/usage_stats.d.ts.map +1 -0
- package/dist/services/usage_stats.js +82 -0
- package/dist/services/usage_stats.js.map +1 -0
- package/dist/services/verticals/baseline_metadata.d.ts +39 -0
- package/dist/services/verticals/baseline_metadata.d.ts.map +1 -0
- package/dist/services/verticals/baseline_metadata.js +394 -0
- package/dist/services/verticals/baseline_metadata.js.map +1 -0
- package/dist/services/verticals/entity_type_registry.d.ts +29 -0
- package/dist/services/verticals/entity_type_registry.d.ts.map +1 -0
- package/dist/services/verticals/entity_type_registry.js +169 -0
- package/dist/services/verticals/entity_type_registry.js.map +1 -0
- package/dist/services/verticals/install.d.ts +64 -0
- package/dist/services/verticals/install.d.ts.map +1 -0
- package/dist/services/verticals/install.js +262 -0
- package/dist/services/verticals/install.js.map +1 -0
- package/dist/services/verticals/registry.d.ts +131 -0
- package/dist/services/verticals/registry.d.ts.map +1 -0
- package/dist/services/verticals/registry.js +457 -0
- package/dist/services/verticals/registry.js.map +1 -0
- package/dist/shared/generated_design_tokens.d.ts +2 -0
- package/dist/shared/generated_design_tokens.d.ts.map +1 -0
- package/dist/shared/generated_design_tokens.js +3 -0
- package/dist/shared/generated_design_tokens.js.map +1 -0
- package/package.json +1 -1
- package/skills/end/SKILL.md +28 -2
- package/skills/status/SKILL.md +27 -1
package/dist/actions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAsC9B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AAarC,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,4BAA4B,CAAC;AA4BpC,OAAO,EAQL,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
package/dist/actions.js
CHANGED
|
@@ -47,6 +47,7 @@ import { getSandboxPack } from "./services/sandbox/pack_registry.js";
|
|
|
47
47
|
import { buildEndpointsMap, buildLandingContext, buildRootLandingJson, buildRootLandingMarkdown, buildRobotsTxt, readGitSha, readNeotomaConfigEnvironment, readPackageVersion, resolveLandingMode, wantsHtml as acceptWantsHtml, wantsMarkdown as acceptWantsMarkdown, } from "./services/root_landing/index.js";
|
|
48
48
|
import { mountDocsRoutes } from "./services/docs/index.js";
|
|
49
49
|
import { installInspectorLegacyRedirect, installInspectorRootStaticAssets, installInspectorSpaFallback, installInspectorSpaShellEarly, resolveBundledInspectorDir, } from "./services/inspector_mount.js";
|
|
50
|
+
import { EMBED_ALLOWED_ORIGINS_ENV, applyFrameAncestorsToCsp, buildFrameAncestorsDirective, embedCorsHeaders, isEmbedReadEndpoint, isEmbedShellPath, isOriginAllowed, parseAllowedEmbedOrigins, } from "./services/embed_cross_origin.js";
|
|
50
51
|
import { getSandboxTermsResponse } from "./services/sandbox/terms.js";
|
|
51
52
|
import { resolveSandboxReportTransport } from "./services/sandbox/transport.js";
|
|
52
53
|
import { getSqliteDb } from "./repositories/sqlite/sqlite_client.js";
|
|
@@ -113,6 +114,71 @@ app.use(helmet({
|
|
|
113
114
|
},
|
|
114
115
|
},
|
|
115
116
|
}));
|
|
117
|
+
// ── Official cross-origin Inspector-embed support (opt-in, secure by default) ──
|
|
118
|
+
//
|
|
119
|
+
// When NEOTOMA_EMBED_ALLOWED_ORIGINS lists one or more host origins, an
|
|
120
|
+
// allowlisted host may iframe `/embed/graph` directly and its browser may
|
|
121
|
+
// `fetch()` the two graph read endpoints cross-origin — WITHOUT running a
|
|
122
|
+
// same-origin reverse proxy. Two response behaviors change, ONLY for
|
|
123
|
+
// allowlisted traffic:
|
|
124
|
+
//
|
|
125
|
+
// 1. Embed shell paths (`/embed/*`) get `Content-Security-Policy:
|
|
126
|
+
// frame-ancestors 'self' <origins>` and drop `X-Frame-Options`, so the
|
|
127
|
+
// allowlisted host can frame them. Non-embed paths are untouched.
|
|
128
|
+
// 2. The two blessed read endpoints (`/entities/query`,
|
|
129
|
+
// `/retrieve_graph_neighborhood`) get scoped CORS (exact-origin echo,
|
|
130
|
+
// never `*`, no credentials) + preflight handling — and ONLY those two.
|
|
131
|
+
// Write endpoints are never CORS-enabled here, so a browser on an
|
|
132
|
+
// allowlisted origin can never reach `/store`,`/correct`,… cross-origin.
|
|
133
|
+
//
|
|
134
|
+
// SECURE BY DEFAULT: with no allowlist configured, this middleware is inert and
|
|
135
|
+
// every response is byte-identical to the locked-down `'self'`/`SAMEORIGIN`
|
|
136
|
+
// posture. Registered AFTER Helmet (so it can override the `X-Frame-Options`
|
|
137
|
+
// Helmet set and rewrite Helmet's CSP), BEFORE the global `cors()` (so it owns
|
|
138
|
+
// the embed preflight and its response is not pre-empted), and before the auth
|
|
139
|
+
// stack (so a CORS preflight OPTIONS is answered without a bearer, as browsers
|
|
140
|
+
// require).
|
|
141
|
+
const embedAllowedOrigins = parseAllowedEmbedOrigins(process.env[EMBED_ALLOWED_ORIGINS_ENV]);
|
|
142
|
+
if (embedAllowedOrigins.length > 0) {
|
|
143
|
+
logger.info(`[EmbedCORS] Cross-origin Inspector embed enabled for: ${embedAllowedOrigins.join(", ")}`);
|
|
144
|
+
}
|
|
145
|
+
app.use((req, res, next) => {
|
|
146
|
+
if (embedAllowedOrigins.length === 0)
|
|
147
|
+
return next();
|
|
148
|
+
const requestOrigin = req.headers.origin;
|
|
149
|
+
const reqPath = req.path;
|
|
150
|
+
// (1) Relax framing on the embed shell so an allowlisted host can iframe it.
|
|
151
|
+
// Applied on embed paths (framing is enforced by the browser against the CSP
|
|
152
|
+
// `frame-ancestors` list, which is itself restricted to the configured
|
|
153
|
+
// origins — so emitting it grants nothing beyond the allowlist). Rewrite the
|
|
154
|
+
// existing Helmet CSP if present, else set a standalone `frame-ancestors`
|
|
155
|
+
// policy, and remove `X-Frame-Options` (which has no allowlist form and would
|
|
156
|
+
// otherwise still block the frame).
|
|
157
|
+
if (isEmbedShellPath(reqPath)) {
|
|
158
|
+
const existingCsp = res.getHeader("Content-Security-Policy");
|
|
159
|
+
if (typeof existingCsp === "string") {
|
|
160
|
+
res.setHeader("Content-Security-Policy", applyFrameAncestorsToCsp(existingCsp, embedAllowedOrigins));
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
const directive = buildFrameAncestorsDirective(embedAllowedOrigins);
|
|
164
|
+
if (directive)
|
|
165
|
+
res.setHeader("Content-Security-Policy", directive);
|
|
166
|
+
}
|
|
167
|
+
res.removeHeader("X-Frame-Options");
|
|
168
|
+
}
|
|
169
|
+
// (2) Scoped CORS on the two blessed read endpoints, only for an allowlisted
|
|
170
|
+
// Origin. Preflight (OPTIONS) is answered here directly with 204.
|
|
171
|
+
if (isEmbedReadEndpoint(reqPath) && isOriginAllowed(requestOrigin, embedAllowedOrigins)) {
|
|
172
|
+
const canonical = new URL(requestOrigin).origin;
|
|
173
|
+
for (const [name, value] of Object.entries(embedCorsHeaders(canonical))) {
|
|
174
|
+
res.setHeader(name, value);
|
|
175
|
+
}
|
|
176
|
+
if (req.method === "OPTIONS") {
|
|
177
|
+
return res.status(204).end();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return next();
|
|
181
|
+
});
|
|
116
182
|
// Configure CORS to allow frontend origin
|
|
117
183
|
const corsOptions = {
|
|
118
184
|
origin: process.env.NEOTOMA_FRONTEND_URL || process.env.FRONTEND_URL || "http://localhost:5195",
|