@indexnetwork/protocol 0.4.0 → 0.5.1-rc.17.1

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 (85) hide show
  1. package/README.md +8 -3
  2. package/dist/agent/agent.tools.d.ts +3 -0
  3. package/dist/agent/agent.tools.d.ts.map +1 -0
  4. package/dist/agent/agent.tools.js +330 -0
  5. package/dist/agent/agent.tools.js.map +1 -0
  6. package/dist/chat/chat.agent.d.ts.map +1 -1
  7. package/dist/chat/chat.agent.js +7 -6
  8. package/dist/chat/chat.agent.js.map +1 -1
  9. package/dist/index.d.ts +6 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp/mcp.server.d.ts +1 -10
  14. package/dist/mcp/mcp.server.d.ts.map +1 -1
  15. package/dist/mcp/mcp.server.js +59 -8
  16. package/dist/mcp/mcp.server.js.map +1 -1
  17. package/dist/negotiation/negotiation.agent.d.ts +30 -0
  18. package/dist/negotiation/negotiation.agent.d.ts.map +1 -0
  19. package/dist/negotiation/negotiation.agent.js +92 -0
  20. package/dist/negotiation/negotiation.agent.js.map +1 -0
  21. package/dist/negotiation/negotiation.graph.d.ts +138 -166
  22. package/dist/negotiation/negotiation.graph.d.ts.map +1 -1
  23. package/dist/negotiation/negotiation.graph.js +85 -80
  24. package/dist/negotiation/negotiation.graph.js.map +1 -1
  25. package/dist/negotiation/negotiation.state.d.ts +128 -34
  26. package/dist/negotiation/negotiation.state.d.ts.map +1 -1
  27. package/dist/negotiation/negotiation.state.js +45 -14
  28. package/dist/negotiation/negotiation.state.js.map +1 -1
  29. package/dist/negotiation/negotiation.tools.d.ts.map +1 -1
  30. package/dist/negotiation/negotiation.tools.js +183 -172
  31. package/dist/negotiation/negotiation.tools.js.map +1 -1
  32. package/dist/opportunity/opportunity.evaluator.d.ts.map +1 -1
  33. package/dist/opportunity/opportunity.evaluator.js +35 -10
  34. package/dist/opportunity/opportunity.evaluator.js.map +1 -1
  35. package/dist/opportunity/opportunity.graph.d.ts +30 -0
  36. package/dist/opportunity/opportunity.graph.d.ts.map +1 -1
  37. package/dist/opportunity/opportunity.graph.js +45 -8
  38. package/dist/opportunity/opportunity.graph.js.map +1 -1
  39. package/dist/opportunity/opportunity.tools.d.ts.map +1 -1
  40. package/dist/opportunity/opportunity.tools.js +12 -4
  41. package/dist/opportunity/opportunity.tools.js.map +1 -1
  42. package/dist/profile/profile.graph.d.ts +12 -12
  43. package/dist/profile/profile.graph.d.ts.map +1 -1
  44. package/dist/profile/profile.graph.js +22 -15
  45. package/dist/profile/profile.graph.js.map +1 -1
  46. package/dist/profile/profile.tools.d.ts.map +1 -1
  47. package/dist/profile/profile.tools.js +12 -1
  48. package/dist/profile/profile.tools.js.map +1 -1
  49. package/dist/shared/agent/model.config.d.ts +1 -4
  50. package/dist/shared/agent/model.config.d.ts.map +1 -1
  51. package/dist/shared/agent/model.config.js +1 -2
  52. package/dist/shared/agent/model.config.js.map +1 -1
  53. package/dist/shared/agent/tool.factory.d.ts.map +1 -1
  54. package/dist/shared/agent/tool.factory.js +12 -6
  55. package/dist/shared/agent/tool.factory.js.map +1 -1
  56. package/dist/shared/agent/tool.helpers.d.ts +17 -9
  57. package/dist/shared/agent/tool.helpers.d.ts.map +1 -1
  58. package/dist/shared/agent/tool.helpers.js.map +1 -1
  59. package/dist/shared/agent/tool.registry.d.ts.map +1 -1
  60. package/dist/shared/agent/tool.registry.js +2 -0
  61. package/dist/shared/agent/tool.registry.js.map +1 -1
  62. package/dist/shared/interfaces/agent-dispatcher.interface.d.ts +68 -0
  63. package/dist/shared/interfaces/agent-dispatcher.interface.d.ts.map +1 -0
  64. package/dist/shared/interfaces/agent-dispatcher.interface.js +9 -0
  65. package/dist/shared/interfaces/agent-dispatcher.interface.js.map +1 -0
  66. package/dist/shared/interfaces/agent.interface.d.ts +176 -0
  67. package/dist/shared/interfaces/agent.interface.d.ts.map +1 -0
  68. package/dist/shared/interfaces/agent.interface.js +15 -0
  69. package/dist/shared/interfaces/agent.interface.js.map +1 -0
  70. package/dist/shared/interfaces/auth.interface.d.ts +10 -3
  71. package/dist/shared/interfaces/auth.interface.d.ts.map +1 -1
  72. package/dist/shared/interfaces/database.interface.d.ts +1 -1
  73. package/dist/shared/interfaces/database.interface.d.ts.map +1 -1
  74. package/dist/shared/interfaces/negotiation-events.interface.d.ts +2 -34
  75. package/dist/shared/interfaces/negotiation-events.interface.d.ts.map +1 -1
  76. package/dist/shared/interfaces/negotiation-events.interface.js +2 -2
  77. package/package.json +4 -2
  78. package/dist/negotiation/negotiation.proposer.d.ts +0 -26
  79. package/dist/negotiation/negotiation.proposer.d.ts.map +0 -1
  80. package/dist/negotiation/negotiation.proposer.js +0 -67
  81. package/dist/negotiation/negotiation.proposer.js.map +0 -1
  82. package/dist/negotiation/negotiation.responder.d.ts +0 -26
  83. package/dist/negotiation/negotiation.responder.d.ts.map +0 -1
  84. package/dist/negotiation/negotiation.responder.js +0 -71
  85. package/dist/negotiation/negotiation.responder.js.map +0 -1
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  export { createChatTools } from "./shared/agent/tool.factory.js";
3
3
  export { configureProtocol } from "./shared/agent/model.config.js";
4
4
  export { ChatContextAccessError, resolveChatContext } from "./shared/agent/tool.helpers.js";
5
+ export { SYSTEM_AGENT_IDS } from './shared/interfaces/agent.interface.js';
5
6
  // ─── Graph factories ──────────────────────────────────────────────────────────
6
7
  export { ChatGraphFactory } from "./chat/chat.graph.js";
7
8
  export { HomeGraphFactory } from "./opportunity/feed/feed.graph.js";
@@ -22,8 +23,7 @@ export { generateInviteMessage } from "./contact/contact.inviter.js";
22
23
  export { IntentIndexer } from "./intent/intent.indexer.js";
23
24
  export { LensInferrer } from "./shared/hyde/lens.inferrer.js";
24
25
  export { NegotiationInsightsGenerator } from "./negotiation/negotiation.insights.generator.js";
25
- export { NegotiationProposer } from "./negotiation/negotiation.proposer.js";
26
- export { NegotiationResponder } from "./negotiation/negotiation.responder.js";
26
+ export { IndexNegotiator } from "./negotiation/negotiation.agent.js";
27
27
  export { OpportunityEvaluator } from "./opportunity/opportunity.evaluator.js";
28
28
  export { OpportunityPresenter, gatherPresenterContext } from "./opportunity/opportunity.presenter.js";
29
29
  // ─── Support utilities ────────────────────────────────────────────────────────
@@ -36,6 +36,7 @@ export { presentOpportunity } from "./opportunity/opportunity.presentation.js";
36
36
  export { stripUuids, stripIntroducerMentions } from "./opportunity/opportunity.presentation.js";
37
37
  // ─── Tools ────────────────────────────────────────────────────────────────────
38
38
  export { createToolRegistry } from "./shared/agent/tool.registry.js";
39
+ export { createAgentTools } from './agent/agent.tools.js';
39
40
  // ─── MCP ──────────────────────────────────────────────────────────────────────
40
41
  export { createMcpServer } from "./mcp/mcp.server.js";
41
42
  // ─── Streamers ────────────────────────────────────────────────────────────────
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAYnE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAkB5F,iFAAiF;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAM7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACjI,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,iFAAiF;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAE/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAK9E,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAGtG,iFAAiF;AAEjF,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yCAAyC,CAAC;AAMjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEhG,iFAAiF;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,iFAAiF;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAatD,iFAAiF;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAYnE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AA4B5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,iFAAiF;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAM7E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACjI,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,iFAAiF;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAK9E,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAGtG,iFAAiF;AAEjF,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yCAAyC,CAAC;AAMjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEhG,iFAAiF;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,iFAAiF;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAatD,iFAAiF;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -16,14 +16,5 @@ export interface ScopedDepsFactory {
16
16
  /** Creates scoped userDb and systemDb for the given user and index scope. */
17
17
  create(userId: string, indexScope: string[]): Pick<ToolDeps, 'userDb' | 'systemDb'>;
18
18
  }
19
- /**
20
- * Creates an MCP server with all protocol tools registered.
21
- * Tools resolve auth per-request via the HTTP request available in ServerContext.
22
- *
23
- * @param deps - Shared tool dependencies (graphs, database, embedder, etc.)
24
- * @param authResolver - Resolves authenticated user ID from the HTTP request
25
- * @param scopedDepsFactory - Factory for creating per-request scoped databases
26
- * @returns A configured McpServer ready to be connected to a transport
27
- */
28
- export declare function createMcpServer(deps: ToolDeps, authResolver: McpAuthResolver, scopedDepsFactory: ScopedDepsFactory): McpServer;
19
+ export declare function createMcpServer(deps: ToolDeps, authResolver: McpAuthResolver, scopedDepsFactory: ScopedDepsFactory, webhookRelayUrl?: string): McpServer;
29
20
  //# sourceMappingURL=mcp.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.server.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAkB,MAAM,8BAA8B,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAmFhE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;CACrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,eAAe,EAC7B,iBAAiB,EAAE,iBAAiB,GACnC,SAAS,CAuFX"}
1
+ {"version":3,"file":"mcp.server.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAkB,MAAM,8BAA8B,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAmFhE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;CACrF;AAcD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,eAAe,EAC7B,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,CAAC,EAAE,MAAM,GACvB,SAAS,CA8IX"}
@@ -93,15 +93,63 @@ function zodToJsonSchema(schema) {
93
93
  * Tools resolve auth per-request via the HTTP request available in ServerContext.
94
94
  *
95
95
  * @param deps - Shared tool dependencies (graphs, database, embedder, etc.)
96
- * @param authResolver - Resolves authenticated user ID from the HTTP request
96
+ * @param authResolver - Resolves authenticated identity from the HTTP request
97
97
  * @param scopedDepsFactory - Factory for creating per-request scoped databases
98
98
  * @returns A configured McpServer ready to be connected to a transport
99
99
  */
100
- export function createMcpServer(deps, authResolver, scopedDepsFactory) {
101
- const server = new McpServer({
102
- name: 'index-network',
103
- version: '1.0.0',
104
- });
100
+ const STABLE_RELAY_URL = 'https://github.com/indexnetwork/index/releases/latest/download/index-webhook-x86_64-unknown-linux-musl';
101
+ export function createMcpServer(deps, authResolver, scopedDepsFactory, webhookRelayUrl) {
102
+ const relayUrl = webhookRelayUrl ?? STABLE_RELAY_URL;
103
+ const INSTACLAW_SETUP = `
104
+ Index Network MCP gives you tools to manage intents, networks, contacts, negotiations, and agents on behalf of the user.
105
+
106
+ ---
107
+
108
+ If you are an OpenClaw agent running on an InstaClaw VM, complete the following setup before using any Index tools:
109
+
110
+ 1. Download the webhook relay binary:
111
+ curl -L ${relayUrl} -o /usr/local/bin/index-webhook
112
+ chmod +x /usr/local/bin/index-webhook
113
+
114
+ 2. Generate a webhook secret and write the env file:
115
+ SECRET=$(openssl rand -hex 32)
116
+ printf "INDEX_WEBHOOK_SECRET=$SECRET\\nPORT=3000\\n" | sudo tee /etc/index-webhook.env
117
+
118
+ 3. Write the systemd unit:
119
+ sudo tee /etc/systemd/system/index-webhook.service << 'EOF'
120
+ [Unit]
121
+ Description=Index Network webhook relay for OpenClaw
122
+ After=network.target
123
+
124
+ [Service]
125
+ EnvironmentFile=/etc/index-webhook.env
126
+ ExecStart=/usr/local/bin/index-webhook
127
+ Restart=on-failure
128
+ RestartSec=5
129
+
130
+ [Install]
131
+ WantedBy=multi-user.target
132
+ EOF
133
+
134
+ 4. Enable and start the service:
135
+ sudo systemctl daemon-reload
136
+ sudo systemctl enable --now index-webhook
137
+ sudo systemctl status index-webhook
138
+
139
+ 5. Get your public IPv6 address:
140
+ curl -6 ifconfig.me
141
+ # Example output: 2600:3c03::2000:29ff:feb8:d613
142
+
143
+ 6. Register yourself as an agent — call register_agent with:
144
+ - name: "OpenClaw Agent"
145
+ - channel: "webhook"
146
+ - url: "http://[<your-ipv6-from-step-5>]:3000/index/webhook"
147
+ - secret: <re-read with: sudo grep INDEX_WEBHOOK_SECRET /etc/index-webhook.env | cut -d= -f2>
148
+ - actions: ["manage:negotiations"]
149
+
150
+ Setup complete. You can now receive negotiation events from Index Network.
151
+ `.trim();
152
+ const server = new McpServer({ name: 'index-network', version: '1.0.0' }, { instructions: INSTACLAW_SETUP });
105
153
  const registry = createToolRegistry(deps);
106
154
  for (const [toolName, toolDef] of registry) {
107
155
  // Convert Zod 3 schema to JSON Schema, then wrap with fromJsonSchema
@@ -121,11 +169,14 @@ export function createMcpServer(deps, authResolver, scopedDepsFactory) {
121
169
  isError: true,
122
170
  };
123
171
  }
124
- // Resolve authenticated user
125
- const userId = await authResolver.resolveUserId(httpReq);
172
+ // Resolve authenticated identity (userId + optional agentId)
173
+ const { userId, agentId } = await authResolver.resolveIdentity(httpReq);
126
174
  // Resolve chat context for the user (mark as MCP — no interactive UI available)
127
175
  const context = await resolveChatContext({ database: deps.database, userId });
128
176
  context.isMcp = true;
177
+ if (agentId) {
178
+ context.agentId = agentId;
179
+ }
129
180
  // Build per-request scoped databases via injected factory
130
181
  const indexScope = context.userNetworks.map((m) => m.networkId);
131
182
  const scopedDbs = scopedDepsFactory.create(userId, indexScope);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.server.js","sourceRoot":"","sources":["../../src/mcp/mcp.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.server.js","sourceRoot":"","sources":["../../src/mcp/mcp.server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type NegotiationTurn, type UserNegotiationContext, type SeedAssessment } from "./negotiation.state.js";
2
+ export interface NegotiationAgentInput {
3
+ ownUser: UserNegotiationContext;
4
+ otherUser: UserNegotiationContext;
5
+ indexContext: {
6
+ networkId: string;
7
+ prompt?: string;
8
+ };
9
+ seedAssessment: SeedAssessment;
10
+ history: NegotiationTurn[];
11
+ isFinalTurn?: boolean;
12
+ /** Whether ownUser is the party that initiated the discovery (searched/signalled). */
13
+ isDiscoverer?: boolean;
14
+ /** The explicit search query that triggered discovery (if any). Takes priority over background intents. */
15
+ discoveryQuery?: string;
16
+ }
17
+ /**
18
+ * Unified system negotiation agent that advocates for its user.
19
+ * Adapts behavior based on turn position (first turn = propose, subsequent = respond).
20
+ * @remarks Uses structured output constrained to NegotiationTurnSchema (without question action).
21
+ */
22
+ export declare class IndexNegotiator {
23
+ /**
24
+ * Generate a negotiation turn.
25
+ * @param input - User contexts, seed assessment, history, and final turn flag
26
+ * @returns A structured NegotiationTurn
27
+ */
28
+ invoke(input: NegotiationAgentInput): Promise<NegotiationTurn>;
29
+ }
30
+ //# sourceMappingURL=negotiation.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.agent.d.ts","sourceRoot":"","sources":["../../src/negotiation/negotiation.agent.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAsBhC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,sBAAsB,CAAC;IAClC,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;CAoErE"}
@@ -0,0 +1,92 @@
1
+ import { createModel } from "../shared/agent/model.config.js";
2
+ import { SystemNegotiationTurnSchema, FinalNegotiationTurnSchema, } from "./negotiation.state.js";
3
+ const SYSTEM_PROMPT = `You are the Index Negotiator, an AI agent acting on behalf of {userName}. You represent their interests in a bilateral negotiation about a potential connection on a discovery network.
4
+
5
+ {discoveryContext}
6
+ {discoveryQueryContext}
7
+ Your user's role in this connection: {role}
8
+ Network context: {networkContext}
9
+
10
+ Your job: Evaluate whether this connection genuinely serves {userName}'s interests given their role. Argue their case honestly — acknowledge weaknesses, but advocate for genuine fit.
11
+
12
+ Rules:
13
+ - On the FIRST turn: Propose the connection case. Explain why it would benefit both parties. Set action to "propose".
14
+ - On SUBSEQUENT turns: Evaluate the other agent's arguments. Either:
15
+ - "counter" if you have specific objections but see potential
16
+ - "accept" if the match genuinely benefits {userName}
17
+ - "reject" if the match does not serve {userName}'s needs
18
+ - Focus on concrete intent alignment, not vague overlap.
19
+ - Do NOT reference internal system details like scores, pre-screens, or evaluator outputs.
20
+ - suggestedRoles: "agent" = can help, "patient" = seeks help, "peer" = mutual benefit.
21
+ {finalTurnInstruction}`;
22
+ /**
23
+ * Unified system negotiation agent that advocates for its user.
24
+ * Adapts behavior based on turn position (first turn = propose, subsequent = respond).
25
+ * @remarks Uses structured output constrained to NegotiationTurnSchema (without question action).
26
+ */
27
+ export class IndexNegotiator {
28
+ /**
29
+ * Generate a negotiation turn.
30
+ * @param input - User contexts, seed assessment, history, and final turn flag
31
+ * @returns A structured NegotiationTurn
32
+ */
33
+ async invoke(input) {
34
+ const schema = input.isFinalTurn ? FinalNegotiationTurnSchema : SystemNegotiationTurnSchema;
35
+ const model = createModel("negotiator").withStructuredOutput(schema, { name: "index_negotiator" });
36
+ const userName = input.ownUser.profile.name ?? "your user";
37
+ const role = input.seedAssessment.valencyRole || "peer";
38
+ const networkContext = input.indexContext.prompt || "General discovery";
39
+ const finalTurnInstruction = input.isFinalTurn
40
+ ? "\n\nIMPORTANT: This is your FINAL turn. You MUST choose either 'accept' or 'reject'. No counter is allowed."
41
+ : "";
42
+ const otherName = input.otherUser.profile.name ?? "the other user";
43
+ const discoveryContext = input.isDiscoverer
44
+ ? `${userName} initiated this discovery — they are actively looking for connections. ${otherName} was identified as a potential match.`
45
+ : `${otherName} initiated this discovery and found ${userName} as a potential match. You are representing the discovered party.`;
46
+ const discoveryQueryContext = input.discoveryQuery
47
+ ? `\nDISCOVERY QUERY: ${userName} explicitly searched for "${input.discoveryQuery}".
48
+ QUERY PRIORITY RULE: This search query is the PRIMARY criterion for this negotiation. Before evaluating intents or profile overlap, first answer: does ${otherName} satisfy the search query "${input.discoveryQuery}"?
49
+ - If the query is a role or identity term (e.g. "samurai", "investors", "designers"): check whether ${otherName} IS that thing based on their profile. Subject-matter adjacency does not count (drawing samurai ≠ being a samurai, raising funding ≠ being an investor).
50
+ - If ${otherName} does NOT satisfy the query: REJECT the match. Background intents cannot rescue a query mismatch.
51
+ - If ${otherName} DOES satisfy the query: PROPOSE or ACCEPT the connection and evaluate fit normally using intents and profile data.`
52
+ : '';
53
+ const systemPrompt = SYSTEM_PROMPT
54
+ .replace(/{userName}/g, userName)
55
+ .replace("{discoveryContext}", discoveryContext)
56
+ .replace("{discoveryQueryContext}", discoveryQueryContext)
57
+ .replace("{role}", role)
58
+ .replace("{networkContext}", networkContext)
59
+ .replace("{finalTurnInstruction}", finalTurnInstruction);
60
+ const historyText = input.history.length > 0
61
+ ? `\n\nNegotiation history:\n${input.history.map((t, i) => {
62
+ const msgPart = t.message ? ` — message: ${t.message}` : '';
63
+ return `Turn ${i + 1}: ${t.action} — reasoning: ${t.assessment.reasoning}${msgPart}`;
64
+ }).join("\n")}`
65
+ : "";
66
+ const discoveryQueryReminder = input.discoveryQuery
67
+ ? `\nREMINDER: ${userName} searched for "${input.discoveryQuery}". Evaluate ${otherName} against this query FIRST. If ${otherName} is not a "${input.discoveryQuery}", reject.\n`
68
+ : '';
69
+ const intentsLabel = input.discoveryQuery ? 'Background intents (secondary to discovery query)' : 'Intents';
70
+ const userMessage = `YOUR USER (${userName}):
71
+ Bio: ${input.ownUser.profile.bio ?? "N/A"}
72
+ Skills: ${input.ownUser.profile.skills?.join(", ") ?? "N/A"}
73
+ ${intentsLabel}:
74
+ ${input.ownUser.intents.map((i) => `- ${i.title}: ${i.description}`).join("\n")}
75
+
76
+ OTHER USER (${otherName}):
77
+ Bio: ${input.otherUser.profile.bio ?? "N/A"}
78
+ Skills: ${input.otherUser.profile.skills?.join(", ") ?? "N/A"}
79
+ Intents:
80
+ ${input.otherUser.intents.map((i) => `- ${i.title}: ${i.description}`).join("\n")}
81
+
82
+ Why this match was suggested: ${input.seedAssessment.reasoning}${historyText}
83
+ ${discoveryQueryReminder}
84
+ ${input.history.length === 0 ? "This is the opening turn. Propose the connection case." : "Evaluate the latest arguments and respond."}`;
85
+ const result = await model.invoke([
86
+ { role: "system", content: systemPrompt },
87
+ { role: "user", content: userMessage },
88
+ ]);
89
+ return result;
90
+ }
91
+ }
92
+ //# sourceMappingURL=negotiation.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.agent.js","sourceRoot":"","sources":["../../src/negotiation/negotiation.agent.ts"],"names":[],"mappings":"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"}