{"_id":"@aimf/ncp-core","_rev":"2-19653984e8fcfece223853d7aea79f9c","name":"@aimf/ncp-core","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aimf/ncp-core","version":"0.1.0","keywords":["aimf","ncp","neural-communication-protocol","mcp","ai"],"author":{"name":"AIMF Team"},"license":"MIT","_id":"@aimf/ncp-core@0.1.0","maintainers":[{"name":"vetriselvans","email":"vetriselvans029@gmail.com"}],"homepage":"https://github.com/aimf/aimf-framework#readme","bugs":{"url":"https://github.com/aimf/aimf-framework/issues"},"dist":{"shasum":"58b2c72aa043f1dd2bf2ca6747587652ab807036","tarball":"https://registry.npmjs.org/@aimf/ncp-core/-/ncp-core-0.1.0.tgz","fileCount":94,"integrity":"sha512-fbCLBiZA0kJ8UMkVhc+oRdDmPsmb+DbiaH8FWhk0e4OPhDBZkcfGSbWPqgdQ+xytWd9kgK5eaUmE1LOcZoBrGw==","signatures":[{"sig":"MEUCIQDHE7k7Aq4B4D7AR3C8iDaD6odbfK3wquTO6MvRSl+p7wIgEP6VkOrPvB4I3YwAr9ijC7qtOY5EUWw+WQupJLVL4lc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243723},"main":"dist/index.js","type":"module","_from":"file:aimf-ncp-core-0.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./envelope":{"types":"./dist/envelope/index.d.ts","import":"./dist/envelope/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","import":"./dist/protocol/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"}},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"vetriselvans","email":"vetriselvans029@gmail.com"},"_resolved":"C:\\Users\\I9159~1.LAP\\AppData\\Local\\Temp\\4aadb376a64270b5048fa30cb8e13d59\\aimf-ncp-core-0.1.0.tgz","_integrity":"sha512-fbCLBiZA0kJ8UMkVhc+oRdDmPsmb+DbiaH8FWhk0e4OPhDBZkcfGSbWPqgdQ+xytWd9kgK5eaUmE1LOcZoBrGw==","repository":{"url":"git+https://github.com/aimf/aimf-framework.git","type":"git","directory":"packages/ncp-core"},"_npmVersion":"10.9.0","description":"Neural Communication Protocol (NCP) core implementation","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.24.1","@aimf/shared":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.1"},"_npmOperationalInternal":{"tmp":"tmp/ncp-core_0.1.0_1765128993297_0.6055137329514957","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aimf/ncp-core","version":"0.1.1","description":"Neural Communication Protocol (NCP) core implementation","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./envelope":{"types":"./dist/envelope/index.d.ts","import":"./dist/envelope/index.js"},"./protocol":{"types":"./dist/protocol/index.d.ts","import":"./dist/protocol/index.js"},"./transport":{"types":"./dist/transport/index.d.ts","import":"./dist/transport/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"}},"dependencies":{"zod":"^3.24.1","@aimf/shared":"0.1.1"},"devDependencies":{"@types/node":"^22.10.1","rimraf":"^6.0.1","typescript":"^5.7.2","vitest":"^2.1.8"},"repository":{"type":"git","url":"git+https://github.com/open-kit-aimf/aimf-framework.git","directory":"packages/ncp-core"},"keywords":["aimf","ncp","neural-communication-protocol","mcp","ai"],"author":{"name":"AIMF Team"},"license":"MIT","scripts":{"build":"tsc","dev":"tsc --watch","clean":"rimraf dist","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest"},"_id":"@aimf/ncp-core@0.1.1","bugs":{"url":"https://github.com/open-kit-aimf/aimf-framework/issues"},"homepage":"https://github.com/open-kit-aimf/aimf-framework#readme","_integrity":"sha512-f+avuGdTT92Rmgc3ggrrvDRZs2gHOvgOi8zkDW1pbdp+MV2AKT1ptrntk6Vyi7zIg5iAVTyXbqyoZ3eFPFqaIA==","_resolved":"C:\\Users\\I9159~1.LAP\\AppData\\Local\\Temp\\8966eec4245ea1532f52b01b5e690a88\\aimf-ncp-core-0.1.1.tgz","_from":"file:aimf-ncp-core-0.1.1.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-f+avuGdTT92Rmgc3ggrrvDRZs2gHOvgOi8zkDW1pbdp+MV2AKT1ptrntk6Vyi7zIg5iAVTyXbqyoZ3eFPFqaIA==","shasum":"36b18322a2fdabc620c07747785d71fe74c6e0b5","tarball":"https://registry.npmjs.org/@aimf/ncp-core/-/ncp-core-0.1.1.tgz","fileCount":94,"unpackedSize":243732,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCmJIAdXGfXkrK2x39sc3O1n/gcdbK+9xp5nEjCVd3FdAIgP8bxuR+JgU0hey6WCDDBbFHvPKFuO6NPLr3Vueio0rk="}]},"_npmUser":{"name":"vetriselvans","email":"vetriselvans029@gmail.com"},"directories":{},"maintainers":[{"name":"vetriselvans","email":"vetriselvans029@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ncp-core_0.1.1_1765130859398_0.9835655489630808"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-07T17:36:33.185Z","modified":"2025-12-07T18:07:39.755Z","0.1.0":"2025-12-07T17:36:33.461Z","0.1.1":"2025-12-07T18:07:39.531Z"},"bugs":{"url":"https://github.com/open-kit-aimf/aimf-framework/issues"},"author":{"name":"AIMF Team"},"license":"MIT","homepage":"https://github.com/open-kit-aimf/aimf-framework#readme","keywords":["aimf","ncp","neural-communication-protocol","mcp","ai"],"repository":{"type":"git","url":"git+https://github.com/open-kit-aimf/aimf-framework.git","directory":"packages/ncp-core"},"description":"Neural Communication Protocol (NCP) core implementation","maintainers":[{"name":"vetriselvans","email":"vetriselvans029@gmail.com"}],"readme":"# @aimf/ncp-core\r\n\r\nCore implementation of the Neural Communication Protocol (NCP) for the AI-MCP Framework.\r\n\r\n## Installation\r\n\r\n```bash\r\npnpm add @aimf/ncp-core\r\n```\r\n\r\n## Features\r\n\r\n- **Envelope Module**: Message wrapping with neural verification\r\n- **Protocol Module**: JSON-RPC 2.0 message creation and handling  \r\n- **Transport Module**: Pluggable transport layer (STDIO, WebSocket, SSE, P2P)\r\n- **Verification Module**: Neural + cryptographic hash verification\r\n- **Server Module**: NCP server with method registration\r\n\r\n## Usage\r\n\r\n### Creating NCP Envelopes\r\n\r\n```typescript\r\nimport { createEnvelope, validateEnvelope, verifyEnvelopeIntegrity } from \"@aimf/ncp-core\";\r\nimport type { NcpEndpoint } from \"@aimf/shared\";\r\n\r\nconst source: NcpEndpoint = {\r\n  type: \"client\",\r\n  id: \"client-1\",\r\n  publicKey: \"pk_client_1\",\r\n};\r\n\r\nconst destination: NcpEndpoint = {\r\n  type: \"gateway\",\r\n  id: \"gateway-1\",\r\n  publicKey: \"pk_gateway_1\",\r\n};\r\n\r\n// Create an envelope\r\nconst envelope = createEnvelope(\r\n  \"mcp\",\r\n  { action: \"test\", data: [1, 2, 3] },\r\n  { source, destination },\r\n  { correlationId: \"optional-correlation-id\" }\r\n);\r\n\r\n// Validate envelope structure\r\nconst validation = validateEnvelope(envelope);\r\nif (validation.valid) {\r\n  console.log(\"Envelope is valid:\", validation.data);\r\n}\r\n\r\n// Verify integrity (crypto hash matches payload)\r\nconst isIntact = verifyEnvelopeIntegrity(envelope);\r\n```\r\n\r\n### Envelope Operations\r\n\r\n```typescript\r\nimport { \r\n  addHop, \r\n  updateConsensus, \r\n  serializeEnvelope, \r\n  deserializeEnvelope,\r\n  createResponseEnvelope,\r\n} from \"@aimf/ncp-core\";\r\n\r\n// Add routing hops\r\nlet envelope = createEnvelope(\"mcp\", payload, context);\r\nenvelope = addHop(envelope, \"node-1\", true, 5);\r\nenvelope = addHop(envelope, \"node-2\", true, 3);\r\n\r\n// Update consensus\r\nenvelope = updateConsensus(envelope, [\"node-1\", \"node-2\"], 0.75);\r\n\r\n// Serialize/deserialize\r\nconst bytes = serializeEnvelope(envelope);\r\nconst restored = deserializeEnvelope(bytes);\r\n\r\n// Create response\r\nconst response = createResponseEnvelope(envelope, { result: \"success\" });\r\n```\r\n\r\n### Creating an NCP Server\r\n\r\n```typescript\r\nimport { createNcpServer, createStdioTransport } from \"@aimf/ncp-core\";\r\n\r\nconst server = createNcpServer({\r\n  transport: createStdioTransport(),\r\n});\r\n\r\n// Register method handlers\r\nserver.method(\"neural.store\", async (params) => {\r\n  const { content } = params as { content: string };\r\n  return { id: \"rec_123\", hash: \"abc...\" };\r\n});\r\n\r\n// Register notification handlers\r\nserver.notification(\"ncp.ping\", () => {\r\n  console.log(\"Received ping\");\r\n});\r\n\r\n// Start the server\r\nawait server.start();\r\n```\r\n\r\n### Creating NCP Messages\r\n\r\n```typescript\r\nimport { createRequest, createResponse, createNotification } from \"@aimf/ncp-core\";\r\n\r\nconst request = createRequest(\"neural.store\", {\r\n  content: \"Hello, World!\",\r\n});\r\n\r\nconst response = createResponse(request.id, {\r\n  id: \"rec_123\",\r\n  hash: \"abc...\",\r\n});\r\n\r\nconst notification = createNotification(\"ncp.ping\");\r\n```\r\n\r\n## Exports\r\n\r\n- **Envelope**: `createEnvelope`, `validateEnvelope`, `verifyEnvelopeIntegrity`, `addHop`, `updateConsensus`, `serializeEnvelope`, `deserializeEnvelope`, `createResponseEnvelope`\r\n- **Protocol**: `createRequest`, `createResponse`, `createNotification`, `NcpHandlerRegistry`\r\n- **Transport**: `BaseTransport`, `NcpTransport`, `TransportConfig`, `TransportMetrics`, `TransportFactory`\r\n  - `StdioTransport`, `createStdioTransport` - Standard input/output with Content-Length framing\r\n  - `SSETransport`, `createSSETransport` - Server-Sent Events with HTTP POST sending\r\n  - `WebSocketTransport`, `createWebSocketTransport` - Bidirectional WebSocket\r\n  - `createTransport`, `registerTransport` - Factory for creating transports\r\n- **Verification**: Neural + crypto hash verification\r\n  - `NeuralHasher`, `MockEmbeddingProvider`, `createMockNeuralHasher` - Neural embedding generation\r\n  - `hash`, `hmac`, `verifyHash`, `timingSafeEqual` - Cryptographic operations\r\n  - `NcpVerifier`, `createNcpVerifier` - Combined verification\r\n- **Server**: `NcpServer`, `createNcpServer`\r\n\r\n## Verification Layer\r\n\r\nThe verification layer combines neural embeddings with cryptographic hashes:\r\n\r\n### Neural Hashing\r\n```typescript\r\nimport { NeuralHasher, MockEmbeddingProvider } from \"@aimf/ncp-core\";\r\n\r\nconst provider = new MockEmbeddingProvider(384);\r\nconst hasher = new NeuralHasher({ provider, cacheEnabled: true });\r\n\r\nconst result = await hasher.hash(\"Hello, World!\");\r\nconsole.log(result.cryptoHash);    // SHA-256 of content\r\nconsole.log(result.embeddingHash); // Hash of embedding vector\r\nconsole.log(result.combinedHash);  // Combined neural + crypto hash\r\n\r\n// Check semantic similarity\r\nconst similarity = await hasher.areSimilar(\"Hello\", \"Hi there\", 0.8);\r\nconsole.log(similarity.similar, similarity.similarity);\r\n```\r\n\r\n### Envelope Verification\r\n```typescript\r\nimport { NcpVerifier, createMockNeuralHasher } from \"@aimf/ncp-core\";\r\n\r\nconst verifier = new NcpVerifier({\r\n  neuralHasher: createMockNeuralHasher(),\r\n  similarityThreshold: 0.95,\r\n  requireConsensus: false,\r\n});\r\n\r\n// Verify an envelope\r\nconst result = await verifier.verify({ envelope });\r\nif (!result.valid) {\r\n  console.error(\"Verification failed:\", result.errors);\r\n}\r\n\r\n// Sign an envelope with this node\r\nconst signed = await verifier.signEnvelope(envelope, \"node-123\");\r\n```\r\n\r\n## Transport Layer\r\n\r\nThe transport layer provides a unified interface for multi-protocol communication:\r\n\r\n### Stdio Transport\r\n```typescript\r\nimport { createStdioTransport } from \"@aimf/ncp-core\";\r\n\r\n// Uses Content-Length framing (MCP compatible)\r\nconst transport = createStdioTransport({\r\n  input: process.stdin,\r\n  output: process.stdout,\r\n});\r\nawait transport.connect();\r\n```\r\n\r\n### SSE Transport\r\n```typescript\r\nimport { createSSETransport } from \"@aimf/ncp-core\";\r\n\r\nconst transport = createSSETransport({\r\n  mode: \"sse\",\r\n  endpoint: \"https://api.example.com/ncp/events\",\r\n  sendEndpoint: \"https://api.example.com/ncp/send\",\r\n  reconnect: true,\r\n  withCredentials: true,\r\n});\r\nawait transport.connect();\r\n```\r\n\r\n### WebSocket Transport\r\n```typescript\r\nimport { createWebSocketTransport } from \"@aimf/ncp-core\";\r\n\r\nconst transport = createWebSocketTransport({\r\n  mode: \"websocket\",\r\n  endpoint: \"wss://api.example.com/ncp\",\r\n  reconnect: true,\r\n  protocols: [\"ncp-v1\"],\r\n});\r\nawait transport.connect();\r\n```\r\n\r\n### Transport Factory\r\n```typescript\r\nimport { createTransport, registerTransport } from \"@aimf/ncp-core\";\r\n\r\n// Create transport from config\r\nconst transport = createTransport({ mode: \"stdio\" });\r\n\r\n// Register custom transport\r\nregisterTransport(\"p2p\", myP2PFactory);\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}