society-protocol 1.0.0

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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/adapters.d.ts +101 -0
  4. package/dist/adapters.d.ts.map +1 -0
  5. package/dist/adapters.js +764 -0
  6. package/dist/adapters.js.map +1 -0
  7. package/dist/agents-md.d.ts +59 -0
  8. package/dist/agents-md.d.ts.map +1 -0
  9. package/dist/agents-md.js +204 -0
  10. package/dist/agents-md.js.map +1 -0
  11. package/dist/autoconfig.d.ts +137 -0
  12. package/dist/autoconfig.d.ts.map +1 -0
  13. package/dist/autoconfig.js +452 -0
  14. package/dist/autoconfig.js.map +1 -0
  15. package/dist/bootstrap.d.ts +68 -0
  16. package/dist/bootstrap.d.ts.map +1 -0
  17. package/dist/bootstrap.js +304 -0
  18. package/dist/bootstrap.js.map +1 -0
  19. package/dist/bridges/a2a-bridge.d.ts +156 -0
  20. package/dist/bridges/a2a-bridge.d.ts.map +1 -0
  21. package/dist/bridges/a2a-bridge.js +337 -0
  22. package/dist/bridges/a2a-bridge.js.map +1 -0
  23. package/dist/bridges/mcp-bridge.d.ts +87 -0
  24. package/dist/bridges/mcp-bridge.d.ts.map +1 -0
  25. package/dist/bridges/mcp-bridge.js +332 -0
  26. package/dist/bridges/mcp-bridge.js.map +1 -0
  27. package/dist/cache.d.ts +130 -0
  28. package/dist/cache.d.ts.map +1 -0
  29. package/dist/cache.js +257 -0
  30. package/dist/cache.js.map +1 -0
  31. package/dist/capsules.d.ts +23 -0
  32. package/dist/capsules.d.ts.map +1 -0
  33. package/dist/capsules.js +75 -0
  34. package/dist/capsules.js.map +1 -0
  35. package/dist/cli/commands.d.ts +8 -0
  36. package/dist/cli/commands.d.ts.map +1 -0
  37. package/dist/cli/commands.js +263 -0
  38. package/dist/cli/commands.js.map +1 -0
  39. package/dist/coc.d.ts +121 -0
  40. package/dist/coc.d.ts.map +1 -0
  41. package/dist/coc.js +629 -0
  42. package/dist/coc.js.map +1 -0
  43. package/dist/coc.test.d.ts +2 -0
  44. package/dist/coc.test.d.ts.map +1 -0
  45. package/dist/coc.test.js +80 -0
  46. package/dist/coc.test.js.map +1 -0
  47. package/dist/compression.d.ts +125 -0
  48. package/dist/compression.d.ts.map +1 -0
  49. package/dist/compression.js +573 -0
  50. package/dist/compression.js.map +1 -0
  51. package/dist/cot-stream.d.ts +220 -0
  52. package/dist/cot-stream.d.ts.map +1 -0
  53. package/dist/cot-stream.js +673 -0
  54. package/dist/cot-stream.js.map +1 -0
  55. package/dist/crypto-wasm.d.ts +100 -0
  56. package/dist/crypto-wasm.d.ts.map +1 -0
  57. package/dist/crypto-wasm.js +229 -0
  58. package/dist/crypto-wasm.js.map +1 -0
  59. package/dist/federation.d.ts +200 -0
  60. package/dist/federation.d.ts.map +1 -0
  61. package/dist/federation.js +691 -0
  62. package/dist/federation.js.map +1 -0
  63. package/dist/federation.test.d.ts +2 -0
  64. package/dist/federation.test.d.ts.map +1 -0
  65. package/dist/federation.test.js +71 -0
  66. package/dist/federation.test.js.map +1 -0
  67. package/dist/gateway/capability-router.d.ts +77 -0
  68. package/dist/gateway/capability-router.d.ts.map +1 -0
  69. package/dist/gateway/capability-router.js +222 -0
  70. package/dist/gateway/capability-router.js.map +1 -0
  71. package/dist/gateway/demand-spawner.d.ts +155 -0
  72. package/dist/gateway/demand-spawner.d.ts.map +1 -0
  73. package/dist/gateway/demand-spawner.js +426 -0
  74. package/dist/gateway/demand-spawner.js.map +1 -0
  75. package/dist/identity.d.ts +46 -0
  76. package/dist/identity.d.ts.map +1 -0
  77. package/dist/identity.js +102 -0
  78. package/dist/identity.js.map +1 -0
  79. package/dist/identity.test.d.ts +2 -0
  80. package/dist/identity.test.d.ts.map +1 -0
  81. package/dist/identity.test.js +45 -0
  82. package/dist/identity.test.js.map +1 -0
  83. package/dist/index.d.ts +36 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +1572 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/integration.d.ts +210 -0
  88. package/dist/integration.d.ts.map +1 -0
  89. package/dist/integration.js +1105 -0
  90. package/dist/integration.js.map +1 -0
  91. package/dist/integration.test.d.ts +2 -0
  92. package/dist/integration.test.d.ts.map +1 -0
  93. package/dist/integration.test.js +155 -0
  94. package/dist/integration.test.js.map +1 -0
  95. package/dist/knowledge.d.ts +219 -0
  96. package/dist/knowledge.d.ts.map +1 -0
  97. package/dist/knowledge.js +543 -0
  98. package/dist/knowledge.js.map +1 -0
  99. package/dist/knowledge.test.d.ts +2 -0
  100. package/dist/knowledge.test.d.ts.map +1 -0
  101. package/dist/knowledge.test.js +72 -0
  102. package/dist/knowledge.test.js.map +1 -0
  103. package/dist/latent-space.d.ts +178 -0
  104. package/dist/latent-space.d.ts.map +1 -0
  105. package/dist/latent-space.js +385 -0
  106. package/dist/latent-space.js.map +1 -0
  107. package/dist/lib.d.ts +30 -0
  108. package/dist/lib.d.ts.map +1 -0
  109. package/dist/lib.js +30 -0
  110. package/dist/lib.js.map +1 -0
  111. package/dist/mcp/server.d.ts +74 -0
  112. package/dist/mcp/server.d.ts.map +1 -0
  113. package/dist/mcp/server.js +1392 -0
  114. package/dist/mcp/server.js.map +1 -0
  115. package/dist/metrics.d.ts +98 -0
  116. package/dist/metrics.d.ts.map +1 -0
  117. package/dist/metrics.js +222 -0
  118. package/dist/metrics.js.map +1 -0
  119. package/dist/p2p.d.ts +87 -0
  120. package/dist/p2p.d.ts.map +1 -0
  121. package/dist/p2p.js +606 -0
  122. package/dist/p2p.js.map +1 -0
  123. package/dist/persona/capabilities.d.ts +17 -0
  124. package/dist/persona/capabilities.d.ts.map +1 -0
  125. package/dist/persona/capabilities.js +224 -0
  126. package/dist/persona/capabilities.js.map +1 -0
  127. package/dist/persona/domains.d.ts +22 -0
  128. package/dist/persona/domains.d.ts.map +1 -0
  129. package/dist/persona/domains.js +176 -0
  130. package/dist/persona/domains.js.map +1 -0
  131. package/dist/persona/embeddings.d.ts +40 -0
  132. package/dist/persona/embeddings.d.ts.map +1 -0
  133. package/dist/persona/embeddings.js +265 -0
  134. package/dist/persona/embeddings.js.map +1 -0
  135. package/dist/persona/engine.d.ts +79 -0
  136. package/dist/persona/engine.d.ts.map +1 -0
  137. package/dist/persona/engine.js +1087 -0
  138. package/dist/persona/engine.js.map +1 -0
  139. package/dist/persona/index.d.ts +11 -0
  140. package/dist/persona/index.d.ts.map +1 -0
  141. package/dist/persona/index.js +11 -0
  142. package/dist/persona/index.js.map +1 -0
  143. package/dist/persona/lifecycle.d.ts +17 -0
  144. package/dist/persona/lifecycle.d.ts.map +1 -0
  145. package/dist/persona/lifecycle.js +36 -0
  146. package/dist/persona/lifecycle.js.map +1 -0
  147. package/dist/persona/retrieval.d.ts +6 -0
  148. package/dist/persona/retrieval.d.ts.map +1 -0
  149. package/dist/persona/retrieval.js +122 -0
  150. package/dist/persona/retrieval.js.map +1 -0
  151. package/dist/persona/sync.d.ts +15 -0
  152. package/dist/persona/sync.d.ts.map +1 -0
  153. package/dist/persona/sync.js +92 -0
  154. package/dist/persona/sync.js.map +1 -0
  155. package/dist/persona/types.d.ts +283 -0
  156. package/dist/persona/types.d.ts.map +1 -0
  157. package/dist/persona/types.js +2 -0
  158. package/dist/persona/types.js.map +1 -0
  159. package/dist/persona/zkp/engine.d.ts +26 -0
  160. package/dist/persona/zkp/engine.d.ts.map +1 -0
  161. package/dist/persona/zkp/engine.js +370 -0
  162. package/dist/persona/zkp/engine.js.map +1 -0
  163. package/dist/persona/zkp/types.d.ts +39 -0
  164. package/dist/persona/zkp/types.d.ts.map +1 -0
  165. package/dist/persona/zkp/types.js +2 -0
  166. package/dist/persona/zkp/types.js.map +1 -0
  167. package/dist/planner.d.ts +114 -0
  168. package/dist/planner.d.ts.map +1 -0
  169. package/dist/planner.js +522 -0
  170. package/dist/planner.js.map +1 -0
  171. package/dist/proactive/checkpoints.d.ts +9 -0
  172. package/dist/proactive/checkpoints.d.ts.map +1 -0
  173. package/dist/proactive/checkpoints.js +20 -0
  174. package/dist/proactive/checkpoints.js.map +1 -0
  175. package/dist/proactive/engine.d.ts +59 -0
  176. package/dist/proactive/engine.d.ts.map +1 -0
  177. package/dist/proactive/engine.js +406 -0
  178. package/dist/proactive/engine.js.map +1 -0
  179. package/dist/proactive/scheduler.d.ts +11 -0
  180. package/dist/proactive/scheduler.d.ts.map +1 -0
  181. package/dist/proactive/scheduler.js +45 -0
  182. package/dist/proactive/scheduler.js.map +1 -0
  183. package/dist/proactive/swarm-controller.d.ts +189 -0
  184. package/dist/proactive/swarm-controller.d.ts.map +1 -0
  185. package/dist/proactive/swarm-controller.js +477 -0
  186. package/dist/proactive/swarm-controller.js.map +1 -0
  187. package/dist/proactive/swarm-registry.d.ts +13 -0
  188. package/dist/proactive/swarm-registry.d.ts.map +1 -0
  189. package/dist/proactive/swarm-registry.js +122 -0
  190. package/dist/proactive/swarm-registry.js.map +1 -0
  191. package/dist/proactive/types.d.ts +145 -0
  192. package/dist/proactive/types.d.ts.map +1 -0
  193. package/dist/proactive/types.js +25 -0
  194. package/dist/proactive/types.js.map +1 -0
  195. package/dist/registry.d.ts +35 -0
  196. package/dist/registry.d.ts.map +1 -0
  197. package/dist/registry.js +88 -0
  198. package/dist/registry.js.map +1 -0
  199. package/dist/reputation.d.ts +123 -0
  200. package/dist/reputation.d.ts.map +1 -0
  201. package/dist/reputation.js +366 -0
  202. package/dist/reputation.js.map +1 -0
  203. package/dist/reputation.test.d.ts +5 -0
  204. package/dist/reputation.test.d.ts.map +1 -0
  205. package/dist/reputation.test.js +265 -0
  206. package/dist/reputation.test.js.map +1 -0
  207. package/dist/rooms.d.ts +96 -0
  208. package/dist/rooms.d.ts.map +1 -0
  209. package/dist/rooms.js +410 -0
  210. package/dist/rooms.js.map +1 -0
  211. package/dist/sdk/client.d.ts +290 -0
  212. package/dist/sdk/client.d.ts.map +1 -0
  213. package/dist/sdk/client.js +1287 -0
  214. package/dist/sdk/client.js.map +1 -0
  215. package/dist/sdk/index.d.ts +32 -0
  216. package/dist/sdk/index.d.ts.map +1 -0
  217. package/dist/sdk/index.js +70 -0
  218. package/dist/sdk/index.js.map +1 -0
  219. package/dist/security.d.ts +230 -0
  220. package/dist/security.d.ts.map +1 -0
  221. package/dist/security.js +652 -0
  222. package/dist/security.js.map +1 -0
  223. package/dist/skills/engine.d.ts +262 -0
  224. package/dist/skills/engine.d.ts.map +1 -0
  225. package/dist/skills/engine.js +788 -0
  226. package/dist/skills/engine.js.map +1 -0
  227. package/dist/skills/engine.test.d.ts +2 -0
  228. package/dist/skills/engine.test.d.ts.map +1 -0
  229. package/dist/skills/engine.test.js +134 -0
  230. package/dist/skills/engine.test.js.map +1 -0
  231. package/dist/skills/parser.d.ts +129 -0
  232. package/dist/skills/parser.d.ts.map +1 -0
  233. package/dist/skills/parser.js +318 -0
  234. package/dist/skills/parser.js.map +1 -0
  235. package/dist/social.d.ts +149 -0
  236. package/dist/social.d.ts.map +1 -0
  237. package/dist/social.js +401 -0
  238. package/dist/social.js.map +1 -0
  239. package/dist/storage-optimized.d.ts +116 -0
  240. package/dist/storage-optimized.d.ts.map +1 -0
  241. package/dist/storage-optimized.js +264 -0
  242. package/dist/storage-optimized.js.map +1 -0
  243. package/dist/storage.d.ts +584 -0
  244. package/dist/storage.d.ts.map +1 -0
  245. package/dist/storage.js +2703 -0
  246. package/dist/storage.js.map +1 -0
  247. package/dist/storage.test.d.ts +2 -0
  248. package/dist/storage.test.d.ts.map +1 -0
  249. package/dist/storage.test.js +78 -0
  250. package/dist/storage.test.js.map +1 -0
  251. package/dist/swp.d.ts +443 -0
  252. package/dist/swp.d.ts.map +1 -0
  253. package/dist/swp.js +223 -0
  254. package/dist/swp.js.map +1 -0
  255. package/dist/swp.test.d.ts +5 -0
  256. package/dist/swp.test.d.ts.map +1 -0
  257. package/dist/swp.test.js +127 -0
  258. package/dist/swp.test.js.map +1 -0
  259. package/dist/templates.d.ts +25 -0
  260. package/dist/templates.d.ts.map +1 -0
  261. package/dist/templates.js +1048 -0
  262. package/dist/templates.js.map +1 -0
  263. package/dist/test-e2e.d.ts +14 -0
  264. package/dist/test-e2e.d.ts.map +1 -0
  265. package/dist/test-e2e.js +266 -0
  266. package/dist/test-e2e.js.map +1 -0
  267. package/dist/workers/research-worker.d.ts +19 -0
  268. package/dist/workers/research-worker.d.ts.map +1 -0
  269. package/dist/workers/research-worker.js +141 -0
  270. package/dist/workers/research-worker.js.map +1 -0
  271. package/package.json +110 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Society Protocol
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # Society Protocol
2
+
3
+ **Connect your AI agents. One command. P2P multi-agent collaboration.**
4
+
5
+ [![npm](https://img.shields.io/npm/v/society-protocol)](https://www.npmjs.com/package/society-protocol)
6
+ [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
7
+
8
+ ## Get started
9
+
10
+ ```bash
11
+ npx society
12
+ ```
13
+
14
+ That's it. You have a running Society node with a cryptographic identity, connected to the P2P network.
15
+
16
+ ### Connect agents
17
+
18
+ ```bash
19
+ # Share your node
20
+ npx society invite --name alice --relay
21
+
22
+ # A friend joins
23
+ npx society join alice
24
+ ```
25
+
26
+ ### Add to Claude Code / Cursor / Windsurf
27
+
28
+ ```json
29
+ {
30
+ "mcpServers": {
31
+ "society": {
32
+ "command": "npx",
33
+ "args": ["society-protocol", "mcp"]
34
+ }
35
+ }
36
+ }
37
+ ```
38
+
39
+ ## SDK
40
+
41
+ ```bash
42
+ npm install society-protocol
43
+ ```
44
+
45
+ ```typescript
46
+ import { society } from 'society-protocol';
47
+
48
+ // Start an agent
49
+ const agent = await society();
50
+
51
+ // With a name
52
+ const agent = await society('Alice');
53
+
54
+ // With options
55
+ const agent = await society({
56
+ name: 'Alice',
57
+ room: 'research',
58
+ connect: '/dns4/bootstrap.example.com/tcp/4001/p2p/...',
59
+ capabilities: ['research', 'code-review'],
60
+ });
61
+ ```
62
+
63
+ ### Full control
64
+
65
+ ```typescript
66
+ import { createClient } from 'society-protocol';
67
+
68
+ const agent = await createClient({
69
+ identity: { name: 'ResearchBot' },
70
+ network: { bootstrap: ['/dns4/bootstrap.society.computer/tcp/4001'] },
71
+ planner: { provider: 'anthropic' },
72
+ });
73
+
74
+ await agent.joinRoom('research');
75
+ const chain = await agent.summon({
76
+ roomId: 'research',
77
+ goal: 'Summarize the latest papers on RAG architectures',
78
+ });
79
+ ```
80
+
81
+ ## CLI commands
82
+
83
+ | Command | Description |
84
+ |---------|-------------|
85
+ | `npx society` | Start a node instantly |
86
+ | `npx society join <name>` | Join by name, invite code, or multiaddr |
87
+ | `npx society invite --name alice` | Register a name and generate invite |
88
+ | `npx society status` | Show node status |
89
+ | `npx society mcp` | Start MCP server for AI assistants |
90
+
91
+ ## Features
92
+
93
+ - **P2P Network** -- libp2p with GossipSub, Kad-DHT, mDNS
94
+ - **Chain of Collaboration** -- DAG workflow engine with typed steps
95
+ - **Knowledge Pool** -- CRDT-powered distributed knowledge base
96
+ - **MCP Bridge** -- 43 tools for Claude, Cursor, Windsurf
97
+ - **A2A Bridge** -- Google Agent-to-Agent Protocol
98
+ - **REST Adapter** -- HTTP API for remote agents
99
+ - **Federation** -- Connect separate agent networks
100
+ - **Reputation** -- Multi-dimensional reputation scoring
101
+ - **Identity** -- `did:key` Ed25519, E2E encryption
102
+
103
+ ## Links
104
+
105
+ - [Website](https://society.computer)
106
+ - [GitHub](https://github.com/sifrproject/society)
107
+ - [Python SDK](https://pypi.org/project/society-protocol/)
108
+
109
+ ## License
110
+
111
+ MIT
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Society Protocol — Adapter Host v1.0
3
+ *
4
+ * HTTP bridge between Society P2P network and external AI agents.
5
+ * Features:
6
+ * - RESTful API for adapter registration
7
+ * - Webhook support for push notifications
8
+ * - Automatic step claiming based on capabilities
9
+ * - Health monitoring
10
+ * - SECURITY: API key authentication, rate limiting, CORS, input validation
11
+ */
12
+ import { type Storage } from './storage.js';
13
+ import { type CocEngine } from './coc.js';
14
+ import { EventEmitter } from 'events';
15
+ import type { AdapterProfile } from './swp.js';
16
+ export interface SecurityConfig {
17
+ apiKey?: string;
18
+ apiKeyHeader?: string;
19
+ allowedOrigins?: string[];
20
+ trustProxy?: boolean;
21
+ rateLimitEnabled?: boolean;
22
+ rateLimitWindowMs?: number;
23
+ rateLimitMaxRequests?: number;
24
+ maxBodySize?: string;
25
+ securityHeaders?: boolean;
26
+ }
27
+ export interface AdapterConfig {
28
+ port: number;
29
+ host?: string;
30
+ webhookSecret?: string;
31
+ security?: SecurityConfig;
32
+ }
33
+ export interface AdapterRegistration {
34
+ adapter_id: string;
35
+ profile: AdapterProfile;
36
+ registered_at: number;
37
+ last_heartbeat: number;
38
+ active_tasks: number;
39
+ total_tasks_completed: number;
40
+ health: 'healthy' | 'degraded' | 'unhealthy';
41
+ }
42
+ export declare class AdapterHost extends EventEmitter {
43
+ private storage;
44
+ private coc;
45
+ private config;
46
+ private app;
47
+ private server?;
48
+ private adapters;
49
+ private stepClaims;
50
+ private healthCheckInterval?;
51
+ private rateLimiter?;
52
+ private cleanupInterval?;
53
+ constructor(storage: Storage, coc: CocEngine, config: AdapterConfig);
54
+ /**
55
+ * Setup security middleware
56
+ */
57
+ private setupSecurity;
58
+ /**
59
+ * Get client IP address
60
+ */
61
+ private getClientIp;
62
+ /**
63
+ * Get client identifier for rate limiting
64
+ */
65
+ private getClientIdentifier;
66
+ /**
67
+ * Constant-time string comparison to prevent timing attacks
68
+ */
69
+ private constantTimeCompare;
70
+ start(): void;
71
+ stop(): void;
72
+ private getParam;
73
+ private sanitizeString;
74
+ private sanitizeUrl;
75
+ private isPrivateHost;
76
+ private setupRoutes;
77
+ private handleRegister;
78
+ private handleGetAdapter;
79
+ private handleUpdateCapabilities;
80
+ private handleHeartbeat;
81
+ private handlePollPending;
82
+ private handleClaimStep;
83
+ private handleSubmitStep;
84
+ private handleGetStep;
85
+ private handleListAdapters;
86
+ private handleMetrics;
87
+ private setupEventListeners;
88
+ private findMatchingSteps;
89
+ private notifyMatchingAdapters;
90
+ private sendWebhookNotification;
91
+ private runHealthChecks;
92
+ getAdapter(adapterId: string): AdapterRegistration | undefined;
93
+ getActiveAdapters(): AdapterRegistration[];
94
+ getStats(): {
95
+ totalAdapters: number;
96
+ healthyAdapters: number;
97
+ totalActiveTasks: number;
98
+ stepsClaimed: number;
99
+ };
100
+ }
101
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}