@neat.is/core 0.2.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.
Files changed (44) hide show
  1. package/compat.json +120 -0
  2. package/dist/chunk-6JT6L2OV.js +164 -0
  3. package/dist/chunk-6JT6L2OV.js.map +1 -0
  4. package/dist/chunk-6SFEITLJ.js +3371 -0
  5. package/dist/chunk-6SFEITLJ.js.map +1 -0
  6. package/dist/chunk-I5IMCXRO.js +325 -0
  7. package/dist/chunk-I5IMCXRO.js.map +1 -0
  8. package/dist/chunk-T2U4U256.js +462 -0
  9. package/dist/chunk-T2U4U256.js.map +1 -0
  10. package/dist/chunk-WX55TLUT.js +184 -0
  11. package/dist/chunk-WX55TLUT.js.map +1 -0
  12. package/dist/chunk-XOOCA5T7.js +290 -0
  13. package/dist/chunk-XOOCA5T7.js.map +1 -0
  14. package/dist/cli.cjs +5754 -0
  15. package/dist/cli.cjs.map +1 -0
  16. package/dist/cli.d.cts +36 -0
  17. package/dist/cli.d.ts +36 -0
  18. package/dist/cli.js +1175 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/index.cjs +4552 -0
  21. package/dist/index.cjs.map +1 -0
  22. package/dist/index.d.cts +408 -0
  23. package/dist/index.d.ts +408 -0
  24. package/dist/index.js +93 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/neatd.cjs +3070 -0
  27. package/dist/neatd.cjs.map +1 -0
  28. package/dist/neatd.d.cts +1 -0
  29. package/dist/neatd.d.ts +1 -0
  30. package/dist/neatd.js +114 -0
  31. package/dist/neatd.js.map +1 -0
  32. package/dist/otel-grpc-B4XBSI4W.js +9 -0
  33. package/dist/otel-grpc-B4XBSI4W.js.map +1 -0
  34. package/dist/server.cjs +4499 -0
  35. package/dist/server.cjs.map +1 -0
  36. package/dist/server.d.cts +2 -0
  37. package/dist/server.d.ts +2 -0
  38. package/dist/server.js +97 -0
  39. package/dist/server.js.map +1 -0
  40. package/package.json +77 -0
  41. package/proto/opentelemetry/proto/collector/trace/v1/trace_service.proto +31 -0
  42. package/proto/opentelemetry/proto/common/v1/common.proto +46 -0
  43. package/proto/opentelemetry/proto/resource/v1/resource.proto +19 -0
  44. package/proto/opentelemetry/proto/trace/v1/trace.proto +93 -0
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/dist/server.js ADDED
@@ -0,0 +1,97 @@
1
+ import {
2
+ buildSearchIndex
3
+ } from "./chunk-XOOCA5T7.js";
4
+ import {
5
+ buildApi
6
+ } from "./chunk-T2U4U256.js";
7
+ import {
8
+ DEFAULT_PROJECT,
9
+ Projects,
10
+ extractFromDirectory,
11
+ getGraph,
12
+ loadGraphFromDisk,
13
+ makeSpanHandler,
14
+ parseExtraProjects,
15
+ pathsForProject,
16
+ startPersistLoop,
17
+ startStalenessLoop
18
+ } from "./chunk-6SFEITLJ.js";
19
+ import {
20
+ buildOtelReceiver,
21
+ startOtelGrpcReceiver
22
+ } from "./chunk-I5IMCXRO.js";
23
+
24
+ // src/server.ts
25
+ import path from "path";
26
+ async function bootProject(registry, name, scanPath, baseDir) {
27
+ const paths = pathsForProject(name, baseDir);
28
+ const graph = getGraph(name);
29
+ await loadGraphFromDisk(graph, paths.snapshotPath);
30
+ if (scanPath) {
31
+ const r = await extractFromDirectory(graph, scanPath);
32
+ console.log(
33
+ `[${name}] extract: ${r.nodesAdded} new nodes, ${r.edgesAdded} new edges (graph total ${graph.order}/${graph.size})`
34
+ );
35
+ } else {
36
+ console.log(`[${name}] loaded ${graph.order} nodes / ${graph.size} edges from snapshot`);
37
+ }
38
+ startPersistLoop(graph, paths.snapshotPath);
39
+ startStalenessLoop(graph, { staleEventsPath: paths.staleEventsPath });
40
+ const searchIndex = await buildSearchIndex(graph, {
41
+ cachePath: paths.embeddingsCachePath
42
+ }).catch((err) => {
43
+ console.warn(
44
+ `[${name}] semantic_search: index build failed (${err.message}); falling back to inline substring`
45
+ );
46
+ return void 0;
47
+ });
48
+ if (searchIndex) {
49
+ console.log(`[${name}] semantic_search: ${searchIndex.provider} provider`);
50
+ }
51
+ registry.set(name, {
52
+ scanPath,
53
+ paths,
54
+ searchIndex
55
+ });
56
+ }
57
+ async function main() {
58
+ const baseDirEnv = process.env.NEAT_OUT_DIR;
59
+ const legacyOutPath = process.env.NEAT_OUT_PATH;
60
+ const baseDir = baseDirEnv ? path.resolve(baseDirEnv) : legacyOutPath ? path.resolve(path.dirname(legacyOutPath)) : path.resolve("./neat-out");
61
+ const defaultScanPath = path.resolve(process.env.NEAT_SCAN_PATH ?? "./demo");
62
+ const registry = new Projects();
63
+ await bootProject(registry, DEFAULT_PROJECT, defaultScanPath, baseDir);
64
+ for (const name of parseExtraProjects(process.env.NEAT_PROJECTS)) {
65
+ const envKey = `NEAT_PROJECT_SCAN_PATH_${name.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`;
66
+ const projectScan = process.env[envKey];
67
+ await bootProject(registry, name, projectScan ? path.resolve(projectScan) : void 0, baseDir);
68
+ }
69
+ const host = process.env.HOST ?? "0.0.0.0";
70
+ const port = Number(process.env.PORT ?? 8080);
71
+ const otelPort = Number(process.env.OTEL_PORT ?? 4318);
72
+ const app = await buildApi({ projects: registry });
73
+ await app.listen({ port, host });
74
+ console.log(`neat-core listening on http://${host}:${port}`);
75
+ console.log(` base dir: ${baseDir}`);
76
+ console.log(` projects: ${registry.list().join(", ")}`);
77
+ const defaultCtx = registry.get(DEFAULT_PROJECT);
78
+ if (defaultCtx) {
79
+ const onSpan = makeSpanHandler({
80
+ graph: defaultCtx.graph,
81
+ errorsPath: defaultCtx.paths.errorsPath
82
+ });
83
+ const otelApp = await buildOtelReceiver({ onSpan });
84
+ await otelApp.listen({ port: otelPort, host });
85
+ console.log(`neat-core OTLP receiver on http://${host}:${otelPort}/v1/traces`);
86
+ if (process.env.NEAT_OTLP_GRPC === "true") {
87
+ const grpcPort = Number(process.env.NEAT_OTLP_GRPC_PORT ?? 4317);
88
+ const grpcReceiver = await startOtelGrpcReceiver({ onSpan, host, port: grpcPort });
89
+ console.log(`neat-core OTLP/gRPC receiver on ${grpcReceiver.address}`);
90
+ }
91
+ }
92
+ }
93
+ main().catch((err) => {
94
+ console.error(err);
95
+ process.exit(1);
96
+ });
97
+ //# sourceMappingURL=server.js.map
@@ -0,0 +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'\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 const app = await buildApi({ projects: registry })\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({ onSpan })\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({ onSpan, host, port: grpcPort })\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 ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "@neat.is/core",
3
+ "version": "0.2.5",
4
+ "description": "NEAT graph engine: tree-sitter extraction, OTel ingest, REST API",
5
+ "license": "BUSL-1.1",
6
+ "homepage": "https://neat.is",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/NEAT-Technologies/Neat.git",
10
+ "directory": "packages/core"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "type": "module",
16
+ "main": "./dist/index.cjs",
17
+ "module": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js",
23
+ "require": "./dist/index.cjs"
24
+ }
25
+ },
26
+ "bin": {
27
+ "neat": "./dist/cli.cjs",
28
+ "neatd": "./dist/neatd.cjs"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "compat.json",
33
+ "proto"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsup",
37
+ "prepublishOnly": "npm run build",
38
+ "dev": "tsx watch src/server.ts",
39
+ "start": "node dist/server.cjs",
40
+ "test": "vitest run",
41
+ "lint": "eslint src",
42
+ "clean": "rm -rf dist .turbo"
43
+ },
44
+ "dependencies": {
45
+ "@fastify/cors": "^10.0.0",
46
+ "@grpc/grpc-js": "^1.14.3",
47
+ "@grpc/proto-loader": "^0.8.0",
48
+ "@neat.is/types": "^0.2.5",
49
+ "chokidar": "^4.0.3",
50
+ "fastify": "^5.0.0",
51
+ "graphology": "^0.25.4",
52
+ "graphology-shortest-path": "^2.1.0",
53
+ "graphology-traversal": "^0.3.1",
54
+ "ignore": "^7.0.0",
55
+ "minimatch": "^10.0.0",
56
+ "protobufjs": "^7.5.6",
57
+ "semver": "^7.6.0",
58
+ "smol-toml": "^1.3.0",
59
+ "tree-sitter": "^0.21.1",
60
+ "tree-sitter-javascript": "^0.21.4",
61
+ "tree-sitter-python": "^0.21.0",
62
+ "tree-sitter-typescript": "^0.21.2",
63
+ "yaml": "^2.5.0",
64
+ "zod": "^3.23.8"
65
+ },
66
+ "devDependencies": {
67
+ "@types/node": "^20.14.0",
68
+ "@types/semver": "^7.5.8",
69
+ "tsup": "^8.3.0",
70
+ "tsx": "^4.19.0",
71
+ "typescript": "^5.6.0",
72
+ "vitest": "^2.1.0"
73
+ },
74
+ "optionalDependencies": {
75
+ "@xenova/transformers": "^2.17.2"
76
+ }
77
+ }
@@ -0,0 +1,31 @@
1
+ // Copyright 2019, OpenTelemetry Authors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ //
4
+ // Bundled from https://github.com/open-telemetry/opentelemetry-proto.
5
+ syntax = "proto3";
6
+
7
+ package opentelemetry.proto.collector.trace.v1;
8
+
9
+ import "opentelemetry/proto/trace/v1/trace.proto";
10
+
11
+ option java_multiple_files = true;
12
+ option java_package = "io.opentelemetry.proto.collector.trace.v1";
13
+ option java_outer_classname = "TraceServiceProto";
14
+ option go_package = "go.opentelemetry.io/proto/otlp/collector/trace/v1";
15
+
16
+ service TraceService {
17
+ rpc Export(ExportTraceServiceRequest) returns (ExportTraceServiceResponse) {}
18
+ }
19
+
20
+ message ExportTraceServiceRequest {
21
+ repeated opentelemetry.proto.trace.v1.ResourceSpans resource_spans = 1;
22
+ }
23
+
24
+ message ExportTraceServiceResponse {
25
+ ExportTracePartialSuccess partial_success = 1;
26
+ }
27
+
28
+ message ExportTracePartialSuccess {
29
+ int64 rejected_spans = 1;
30
+ string error_message = 2;
31
+ }
@@ -0,0 +1,46 @@
1
+ // Copyright 2019, OpenTelemetry Authors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ //
4
+ // Bundled from https://github.com/open-telemetry/opentelemetry-proto.
5
+ // We carry this in-tree so @grpc/proto-loader can load OTLP at runtime
6
+ // without an extra package dependency.
7
+ syntax = "proto3";
8
+
9
+ package opentelemetry.proto.common.v1;
10
+
11
+ option java_multiple_files = true;
12
+ option java_package = "io.opentelemetry.proto.common.v1";
13
+ option java_outer_classname = "CommonProto";
14
+ option go_package = "go.opentelemetry.io/proto/otlp/common/v1";
15
+
16
+ message AnyValue {
17
+ oneof value {
18
+ string string_value = 1;
19
+ bool bool_value = 2;
20
+ int64 int_value = 3;
21
+ double double_value = 4;
22
+ ArrayValue array_value = 5;
23
+ KeyValueList kvlist_value = 6;
24
+ bytes bytes_value = 7;
25
+ }
26
+ }
27
+
28
+ message ArrayValue {
29
+ repeated AnyValue values = 1;
30
+ }
31
+
32
+ message KeyValueList {
33
+ repeated KeyValue values = 1;
34
+ }
35
+
36
+ message KeyValue {
37
+ string key = 1;
38
+ AnyValue value = 2;
39
+ }
40
+
41
+ message InstrumentationScope {
42
+ string name = 1;
43
+ string version = 2;
44
+ repeated KeyValue attributes = 3;
45
+ uint32 dropped_attributes_count = 4;
46
+ }
@@ -0,0 +1,19 @@
1
+ // Copyright 2019, OpenTelemetry Authors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ //
4
+ // Bundled from https://github.com/open-telemetry/opentelemetry-proto.
5
+ syntax = "proto3";
6
+
7
+ package opentelemetry.proto.resource.v1;
8
+
9
+ import "opentelemetry/proto/common/v1/common.proto";
10
+
11
+ option java_multiple_files = true;
12
+ option java_package = "io.opentelemetry.proto.resource.v1";
13
+ option java_outer_classname = "ResourceProto";
14
+ option go_package = "go.opentelemetry.io/proto/otlp/resource/v1";
15
+
16
+ message Resource {
17
+ repeated opentelemetry.proto.common.v1.KeyValue attributes = 1;
18
+ uint32 dropped_attributes_count = 2;
19
+ }
@@ -0,0 +1,93 @@
1
+ // Copyright 2019, OpenTelemetry Authors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ //
4
+ // Bundled from https://github.com/open-telemetry/opentelemetry-proto.
5
+ syntax = "proto3";
6
+
7
+ package opentelemetry.proto.trace.v1;
8
+
9
+ import "opentelemetry/proto/common/v1/common.proto";
10
+ import "opentelemetry/proto/resource/v1/resource.proto";
11
+
12
+ option java_multiple_files = true;
13
+ option java_package = "io.opentelemetry.proto.trace.v1";
14
+ option java_outer_classname = "TraceProto";
15
+ option go_package = "go.opentelemetry.io/proto/otlp/trace/v1";
16
+
17
+ message TracesData {
18
+ repeated ResourceSpans resource_spans = 1;
19
+ }
20
+
21
+ message ResourceSpans {
22
+ reserved 1000;
23
+ opentelemetry.proto.resource.v1.Resource resource = 1;
24
+ repeated ScopeSpans scope_spans = 2;
25
+ string schema_url = 3;
26
+ }
27
+
28
+ message ScopeSpans {
29
+ opentelemetry.proto.common.v1.InstrumentationScope scope = 1;
30
+ repeated Span spans = 2;
31
+ string schema_url = 3;
32
+ }
33
+
34
+ message Span {
35
+ reserved 3;
36
+ bytes trace_id = 1;
37
+ bytes span_id = 2;
38
+ string trace_state = 3;
39
+ bytes parent_span_id = 4;
40
+ string name = 5;
41
+
42
+ enum SpanKind {
43
+ SPAN_KIND_UNSPECIFIED = 0;
44
+ SPAN_KIND_INTERNAL = 1;
45
+ SPAN_KIND_SERVER = 2;
46
+ SPAN_KIND_CLIENT = 3;
47
+ SPAN_KIND_PRODUCER = 4;
48
+ SPAN_KIND_CONSUMER = 5;
49
+ }
50
+
51
+ SpanKind kind = 6;
52
+ fixed64 start_time_unix_nano = 7;
53
+ fixed64 end_time_unix_nano = 8;
54
+ repeated opentelemetry.proto.common.v1.KeyValue attributes = 9;
55
+ uint32 dropped_attributes_count = 10;
56
+
57
+ message Event {
58
+ fixed64 time_unix_nano = 1;
59
+ string name = 2;
60
+ repeated opentelemetry.proto.common.v1.KeyValue attributes = 3;
61
+ uint32 dropped_attributes_count = 4;
62
+ }
63
+
64
+ repeated Event events = 11;
65
+ uint32 dropped_events_count = 12;
66
+
67
+ message Link {
68
+ bytes trace_id = 1;
69
+ bytes span_id = 2;
70
+ string trace_state = 3;
71
+ repeated opentelemetry.proto.common.v1.KeyValue attributes = 4;
72
+ uint32 dropped_attributes_count = 5;
73
+ uint32 flags = 6;
74
+ }
75
+
76
+ repeated Link links = 13;
77
+ uint32 dropped_links_count = 14;
78
+ Status status = 15;
79
+ uint32 flags = 16;
80
+ }
81
+
82
+ message Status {
83
+ reserved 1;
84
+ string message = 2;
85
+
86
+ enum StatusCode {
87
+ STATUS_CODE_UNSET = 0;
88
+ STATUS_CODE_OK = 1;
89
+ STATUS_CODE_ERROR = 2;
90
+ }
91
+
92
+ StatusCode code = 3;
93
+ }