@neat.is/core 0.10.3 → 0.10.5-dev.20261001

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/server.js CHANGED
@@ -13,15 +13,15 @@ import {
13
13
  pathsForProject,
14
14
  startPersistLoop,
15
15
  startStalenessLoop
16
- } from "./chunk-LNIVRE4L.js";
16
+ } from "./chunk-HHAPD6JD.js";
17
17
  import {
18
18
  startOtelGrpcReceiver
19
- } from "./chunk-5SJHA5ZH.js";
19
+ } from "./chunk-LXQCL4MP.js";
20
20
  import {
21
21
  assertBindAuthority,
22
22
  buildOtelReceiver,
23
23
  readAuthEnv
24
- } from "./chunk-M7CGATVC.js";
24
+ } from "./chunk-EFBWQIKG.js";
25
25
 
26
26
  // src/server.ts
27
27
  import path from "path";
@@ -73,11 +73,13 @@ async function main() {
73
73
  const otelPort = Number(process.env.OTEL_PORT ?? 4318);
74
74
  const auth = readAuthEnv();
75
75
  assertBindAuthority(host, auth.authToken);
76
+ let otelReceiver;
76
77
  const app = await buildApi({
77
78
  projects: registry,
78
79
  authToken: auth.authToken,
79
80
  trustProxy: auth.trustProxy,
80
- publicRead: auth.publicRead
81
+ publicRead: auth.publicRead,
82
+ otlpReceiver: () => otelReceiver
81
83
  });
82
84
  await app.listen({ port, host });
83
85
  console.log(`neat-core listening on http://${host}:${port}`);
@@ -94,6 +96,7 @@ async function main() {
94
96
  authToken: auth.otelToken,
95
97
  trustProxy: auth.trustProxy
96
98
  });
99
+ otelReceiver = otelApp;
97
100
  await otelApp.listen({ port: otelPort, host });
98
101
  console.log(`neat-core OTLP receiver on http://${host}:${otelPort}/v1/traces`);
99
102
  if (process.env.NEAT_OTLP_GRPC === "true") {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.ts"],"sourcesContent":["import path from 'node:path'\nimport { DEFAULT_PROJECT, getGraph } from './graph.js'\nimport { buildApi } from './api.js'\nimport { extractFromDirectory } from './extract.js'\nimport { loadGraphFromDisk, startPersistLoop } from './persist.js'\nimport { buildOtelReceiver } from './otel.js'\nimport { startOtelGrpcReceiver } from './otel-grpc.js'\nimport { makeSpanHandler, startStalenessLoop } from './ingest.js'\nimport { buildSearchIndex } from './search.js'\nimport { Projects, parseExtraProjects, pathsForProject } from './projects.js'\nimport { assertBindAuthority, readAuthEnv } from './auth.js'\n\nasync function bootProject(\n registry: Projects,\n name: string,\n scanPath: string | undefined,\n baseDir: string,\n): Promise<void> {\n const paths = pathsForProject(name, baseDir)\n const graph = getGraph(name)\n await loadGraphFromDisk(graph, paths.snapshotPath)\n\n if (scanPath) {\n const r = await extractFromDirectory(graph, scanPath)\n console.log(\n `[${name}] extract: ${r.nodesAdded} new nodes, ${r.edgesAdded} new edges (graph total ${graph.order}/${graph.size})`,\n )\n } else {\n console.log(`[${name}] loaded ${graph.order} nodes / ${graph.size} edges from snapshot`)\n }\n\n startPersistLoop(graph, paths.snapshotPath)\n startStalenessLoop(graph, { staleEventsPath: paths.staleEventsPath })\n\n const searchIndex = await buildSearchIndex(graph, {\n cachePath: paths.embeddingsCachePath,\n }).catch((err) => {\n console.warn(\n `[${name}] semantic_search: index build failed (${(err as Error).message}); falling back to inline substring`,\n )\n return undefined\n })\n if (searchIndex) {\n console.log(`[${name}] semantic_search: ${searchIndex.provider} provider`)\n }\n\n registry.set(name, {\n scanPath,\n paths,\n searchIndex,\n })\n}\n\nasync function main(): Promise<void> {\n const baseDirEnv = process.env.NEAT_OUT_DIR\n const legacyOutPath = process.env.NEAT_OUT_PATH\n const baseDir = baseDirEnv\n ? path.resolve(baseDirEnv)\n : legacyOutPath\n ? path.resolve(path.dirname(legacyOutPath))\n : path.resolve('./neat-out')\n\n const defaultScanPath = path.resolve(process.env.NEAT_SCAN_PATH ?? './demo')\n const registry = new Projects()\n\n // Default project always exists. NEAT_SCAN_PATH still wires it to a scan\n // root so existing single-project users see no behaviour change.\n await bootProject(registry, DEFAULT_PROJECT, defaultScanPath, baseDir)\n\n // Extra projects come from NEAT_PROJECTS=a,b,c. Their snapshots load from\n // <baseDir>/<name>.json; they have no scan path by default (callers can\n // POST /projects/<name>/graph/scan after wiring NEAT_PROJECT_SCAN_PATH_<NAME>).\n for (const name of parseExtraProjects(process.env.NEAT_PROJECTS)) {\n const envKey = `NEAT_PROJECT_SCAN_PATH_${name.toUpperCase().replace(/[^A-Z0-9]/g, '_')}`\n const projectScan = process.env[envKey]\n await bootProject(registry, name, projectScan ? path.resolve(projectScan) : undefined, baseDir)\n }\n\n const host = process.env.HOST ?? '0.0.0.0'\n const port = Number(process.env.PORT ?? 8080)\n const otelPort = Number(process.env.OTEL_PORT ?? 4318)\n\n // ADR-073 §3 — refuse to bind a public address without a token.\n const auth = readAuthEnv()\n assertBindAuthority(host, auth.authToken)\n\n const app = await buildApi({\n projects: registry,\n authToken: auth.authToken,\n trustProxy: auth.trustProxy,\n publicRead: auth.publicRead,\n })\n await app.listen({ port, host })\n console.log(`neat-core listening on http://${host}:${port}`)\n console.log(` base dir: ${baseDir}`)\n console.log(` projects: ${registry.list().join(', ')}`)\n\n // OTel ingest stays single-project for now: spans always land in the\n // default project's graph + errors log. Multi-project routing for spans\n // is a future concern (would need a header / resource attr).\n const defaultCtx = registry.get(DEFAULT_PROJECT)\n if (defaultCtx) {\n const onSpan = makeSpanHandler({\n graph: defaultCtx.graph,\n errorsPath: defaultCtx.paths.errorsPath,\n })\n const otelApp = await buildOtelReceiver({\n onSpan,\n authToken: auth.otelToken,\n trustProxy: auth.trustProxy,\n })\n await otelApp.listen({ port: otelPort, host })\n console.log(`neat-core OTLP receiver on http://${host}:${otelPort}/v1/traces`)\n\n if (process.env.NEAT_OTLP_GRPC === 'true') {\n const grpcPort = Number(process.env.NEAT_OTLP_GRPC_PORT ?? 4317)\n const grpcReceiver = await startOtelGrpcReceiver({\n onSpan,\n host,\n port: grpcPort,\n authToken: auth.otelToken,\n trustProxy: auth.trustProxy,\n })\n console.log(`neat-core OTLP/gRPC receiver on ${grpcReceiver.address}`)\n }\n }\n}\n\nmain().catch((err) => {\n console.error(err)\n process.exit(1)\n})\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/server.ts"],"sourcesContent":["import path from 'node:path'\nimport type { FastifyInstance } from 'fastify'\nimport { DEFAULT_PROJECT, getGraph } from './graph.js'\nimport { buildApi } from './api.js'\nimport { extractFromDirectory } from './extract.js'\nimport { loadGraphFromDisk, startPersistLoop } from './persist.js'\nimport { buildOtelReceiver } from './otel.js'\nimport { startOtelGrpcReceiver } from './otel-grpc.js'\nimport { makeSpanHandler, startStalenessLoop } from './ingest.js'\nimport { buildSearchIndex } from './search.js'\nimport { Projects, parseExtraProjects, pathsForProject } from './projects.js'\nimport { assertBindAuthority, readAuthEnv } from './auth.js'\n\nasync function bootProject(\n registry: Projects,\n name: string,\n scanPath: string | undefined,\n baseDir: string,\n): Promise<void> {\n const paths = pathsForProject(name, baseDir)\n const graph = getGraph(name)\n await loadGraphFromDisk(graph, paths.snapshotPath)\n\n if (scanPath) {\n const r = await extractFromDirectory(graph, scanPath)\n console.log(\n `[${name}] extract: ${r.nodesAdded} new nodes, ${r.edgesAdded} new edges (graph total ${graph.order}/${graph.size})`,\n )\n } else {\n console.log(`[${name}] loaded ${graph.order} nodes / ${graph.size} edges from snapshot`)\n }\n\n startPersistLoop(graph, paths.snapshotPath)\n startStalenessLoop(graph, { staleEventsPath: paths.staleEventsPath })\n\n const searchIndex = await buildSearchIndex(graph, {\n cachePath: paths.embeddingsCachePath,\n }).catch((err) => {\n console.warn(\n `[${name}] semantic_search: index build failed (${(err as Error).message}); falling back to inline substring`,\n )\n return undefined\n })\n if (searchIndex) {\n console.log(`[${name}] semantic_search: ${searchIndex.provider} provider`)\n }\n\n registry.set(name, {\n scanPath,\n paths,\n searchIndex,\n })\n}\n\nasync function main(): Promise<void> {\n const baseDirEnv = process.env.NEAT_OUT_DIR\n const legacyOutPath = process.env.NEAT_OUT_PATH\n const baseDir = baseDirEnv\n ? path.resolve(baseDirEnv)\n : legacyOutPath\n ? path.resolve(path.dirname(legacyOutPath))\n : path.resolve('./neat-out')\n\n const defaultScanPath = path.resolve(process.env.NEAT_SCAN_PATH ?? './demo')\n const registry = new Projects()\n\n // Default project always exists. NEAT_SCAN_PATH still wires it to a scan\n // root so existing single-project users see no behaviour change.\n await bootProject(registry, DEFAULT_PROJECT, defaultScanPath, baseDir)\n\n // Extra projects come from NEAT_PROJECTS=a,b,c. Their snapshots load from\n // <baseDir>/<name>.json; they have no scan path by default (callers can\n // POST /projects/<name>/graph/scan after wiring NEAT_PROJECT_SCAN_PATH_<NAME>).\n for (const name of parseExtraProjects(process.env.NEAT_PROJECTS)) {\n const envKey = `NEAT_PROJECT_SCAN_PATH_${name.toUpperCase().replace(/[^A-Z0-9]/g, '_')}`\n const projectScan = process.env[envKey]\n await bootProject(registry, name, projectScan ? path.resolve(projectScan) : undefined, baseDir)\n }\n\n const host = process.env.HOST ?? '0.0.0.0'\n const port = Number(process.env.PORT ?? 8080)\n const otelPort = Number(process.env.OTEL_PORT ?? 4318)\n\n // ADR-073 §3 — refuse to bind a public address without a token.\n const auth = readAuthEnv()\n assertBindAuthority(host, auth.authToken)\n\n // Set once the OTLP receiver is built below; its routes answer on the REST\n // port too (see buildApi's `otlpReceiver`).\n let otelReceiver: FastifyInstance | undefined\n const app = await buildApi({\n projects: registry,\n authToken: auth.authToken,\n trustProxy: auth.trustProxy,\n publicRead: auth.publicRead,\n otlpReceiver: () => otelReceiver,\n })\n await app.listen({ port, host })\n console.log(`neat-core listening on http://${host}:${port}`)\n console.log(` base dir: ${baseDir}`)\n console.log(` projects: ${registry.list().join(', ')}`)\n\n // OTel ingest stays single-project for now: spans always land in the\n // default project's graph + errors log. Multi-project routing for spans\n // is a future concern (would need a header / resource attr).\n const defaultCtx = registry.get(DEFAULT_PROJECT)\n if (defaultCtx) {\n const onSpan = makeSpanHandler({\n graph: defaultCtx.graph,\n errorsPath: defaultCtx.paths.errorsPath,\n })\n const otelApp = await buildOtelReceiver({\n onSpan,\n authToken: auth.otelToken,\n trustProxy: auth.trustProxy,\n })\n otelReceiver = otelApp\n await otelApp.listen({ port: otelPort, host })\n console.log(`neat-core OTLP receiver on http://${host}:${otelPort}/v1/traces`)\n\n if (process.env.NEAT_OTLP_GRPC === 'true') {\n const grpcPort = Number(process.env.NEAT_OTLP_GRPC_PORT ?? 4317)\n const grpcReceiver = await startOtelGrpcReceiver({\n onSpan,\n host,\n port: grpcPort,\n authToken: auth.otelToken,\n trustProxy: auth.trustProxy,\n })\n console.log(`neat-core OTLP/gRPC receiver on ${grpcReceiver.address}`)\n }\n }\n}\n\nmain().catch((err) => {\n console.error(err)\n process.exit(1)\n})\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neat.is/core",
3
- "version": "0.10.3",
3
+ "version": "0.10.5-dev.20261001",
4
4
  "description": "NEAT graph engine: tree-sitter extraction, OTel ingest, REST API",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://neat.is",
@@ -51,7 +51,7 @@
51
51
  "@fastify/cors": "^10.0.0",
52
52
  "@grpc/grpc-js": "^1.14.3",
53
53
  "@grpc/proto-loader": "^0.8.0",
54
- "@neat.is/types": "^0.10.3",
54
+ "@neat.is/types": "^0.10.5-dev.20261001",
55
55
  "chokidar": "^4.0.3",
56
56
  "fastify": "^5.0.0",
57
57
  "graphology": "^0.25.4",