forgetting-engine-mcp 0.4.0__tar.gz

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.
@@ -0,0 +1,2 @@
1
+ include README.md
2
+ graft src/forgetting_engine_mcp/proto
@@ -0,0 +1,180 @@
1
+ Metadata-Version: 2.4
2
+ Name: forgetting-engine-mcp
3
+ Version: 0.4.0
4
+ Summary: 遗忘引擎 MCP 客户端 — 将 Claude Desktop 连接到 knownot.cc 长期记忆服务
5
+ License-Expression: MIT
6
+ Requires-Python: >=3.11
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: grpcio>=1.80.0
9
+ Requires-Dist: protobuf>=4.21
10
+
11
+ # 遗忘引擎 MCP 客户端
12
+
13
+ 将 Claude Desktop 连接到 [knownot.cc](https://knownot.cc) 遗忘引擎长期记忆服务。
14
+
15
+ ```
16
+ Claude Desktop ──stdio──→ MCP Proxy ──gRPC──→ knownot.cc:5005x
17
+ ```
18
+
19
+ ## 安装
20
+
21
+ ```bash
22
+ pip install forgetting-engine-mcp
23
+ ```
24
+
25
+ ## 获取 Kin ID
26
+
27
+ 安装并配置好 MCP 后,在对话中调用:
28
+
29
+ ```
30
+ 使用 forgetting_engine_generate_kin 工具
31
+ → 返回 {"kin_id": "84729105361"}
32
+ ```
33
+
34
+ 复制输出的 kin_id 留存,后续 ingest/retrieve 时作为 kin_id 传入。
35
+
36
+ ## 配置
37
+
38
+ ### Claude Desktop
39
+
40
+ 编辑 `claude_desktop_config.json`:
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "forgetting-engine": {
46
+ "command": "mcp-forgetting-engine",
47
+ "env": {
48
+ "FE_ENDPOINT": "knownot.cc:50051",
49
+ "FE_API_KEY": "fe_ak_your_key_here"
50
+ }
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ ### Claude Code
57
+
58
+ 编辑 `~/.claude.json`:
59
+
60
+ ```json
61
+ {
62
+ "mcpServers": {
63
+ "forgetting-engine": {
64
+ "command": "mcp-forgetting-engine",
65
+ "env": {
66
+ "FE_ENDPOINT": "knownot.cc:50051",
67
+ "FE_API_KEY": "fe_ak_your_key_here"
68
+ }
69
+ }
70
+ }
71
+ }
72
+ ```
73
+
74
+ ## 选择实例
75
+
76
+ | 实例 | FE_ENDPOINT | 说明 |
77
+ |------|-------------|------|
78
+ | 通用版 | `knownot.cc:50051` | allergy, preference, constraint, danger |
79
+ | 护肤增强版 | `knownot.cc:50052` | 通用 + skincare_* |
80
+ | 法律增强版 | `knownot.cc:50053` | 通用 + legal_* |
81
+ | 编程增强版 | `knownot.cc:50054` | 通用 + coding_* |
82
+
83
+ ## 环境变量
84
+
85
+ | 变量 | 必填 | 默认值 | 说明 |
86
+ |------|------|--------|------|
87
+ | `FE_ENDPOINT` | 否 | `knownot.cc:50051` | 遗忘引擎服务端地址 |
88
+ | `FE_API_KEY` | 是 | - | API Key(从 knownot.cc 门户创建) |
89
+
90
+ ## 可用工具
91
+
92
+ | 工具 | 说明 |
93
+ |------|------|
94
+ | `forgetting_engine_generate_kin` | 生成新的 11 位 kin_id |
95
+ | `forgetting_engine_ingest` | 摄入对话消息到长期记忆 |
96
+ | `forgetting_engine_retrieve` | 检索记忆上下文 |
97
+ | `forgetting_engine_ingest_features` | 回传/更新用户特征信息 |
98
+
99
+ ## 支持的 MCP 宿主
100
+
101
+ | 工具 | 配置文件 | 格式 | 状态 |
102
+ |------|---------|------|------|
103
+ | Claude Code | `~/.claude.json` | JSON | 已验证 |
104
+ | Claude Desktop | `claude_desktop_config.json` | JSON | 已验证 |
105
+ | Cursor | `~/.cursor/mcp.json` | JSON | 已验证 |
106
+ | Codex (OpenAI) | `~/.codex/config.toml` | TOML | 待验证 |
107
+ | Hermes | `~/.hermes/config.yaml` | YAML | 待验证 |
108
+ | OpenCode | `.opencode.json` | JSON/JSONC | 待验证 |
109
+ | OpenClaw | — | — | 不支持 MCP 客户端 |
110
+
111
+ ### Cursor 配置
112
+
113
+ 编辑 `~/.cursor/mcp.json`(全局)或 `.cursor/mcp.json`(项目):
114
+
115
+ ```json
116
+ {
117
+ "mcpServers": {
118
+ "forgetting-engine": {
119
+ "command": "mcp-forgetting-engine",
120
+ "env": {
121
+ "FE_ENDPOINT": "knownot.cc:50051",
122
+ "FE_API_KEY": "fe_ak_your_key_here"
123
+ }
124
+ }
125
+ }
126
+ }
127
+ ```
128
+
129
+ ### Codex 配置
130
+
131
+ 编辑 `~/.codex/config.toml`:
132
+
133
+ ```toml
134
+ [mcp_servers.forgetting-engine]
135
+ type = "stdio"
136
+ command = "mcp-forgetting-engine"
137
+ args = []
138
+
139
+ [mcp_servers.forgetting-engine.env]
140
+ FE_ENDPOINT = "knownot.cc:50051"
141
+ FE_API_KEY = "fe_ak_your_key_here"
142
+ ```
143
+
144
+ ### Hermes 配置
145
+
146
+ 编辑 `~/.hermes/config.yaml`:
147
+
148
+ ```yaml
149
+ mcp_servers:
150
+ forgetting-engine:
151
+ command: mcp-forgetting-engine
152
+ env:
153
+ FE_ENDPOINT: knownot.cc:50051
154
+ FE_API_KEY: fe_ak_your_key_here
155
+ ```
156
+
157
+ ### OpenCode 配置
158
+
159
+ 编辑项目根目录的 `.opencode.json` 或 `~/.opencode.json`:
160
+
161
+ ```json
162
+ {
163
+ "$schema": "https://opencode.ai/config.json",
164
+ "mcp": {
165
+ "forgetting-engine": {
166
+ "type": "local",
167
+ "command": ["mcp-forgetting-engine"],
168
+ "enabled": true,
169
+ "environment": {
170
+ "FE_ENDPOINT": "knownot.cc:50051",
171
+ "FE_API_KEY": "fe_ak_your_key_here"
172
+ }
173
+ }
174
+ }
175
+ }
176
+ ```
177
+
178
+ ## 获取 API Key
179
+
180
+ 访问 [knownot.cc](https://knownot.cc) 登录后在 "API Keys" 页面创建 Key。
@@ -0,0 +1,170 @@
1
+ # 遗忘引擎 MCP 客户端
2
+
3
+ 将 Claude Desktop 连接到 [knownot.cc](https://knownot.cc) 遗忘引擎长期记忆服务。
4
+
5
+ ```
6
+ Claude Desktop ──stdio──→ MCP Proxy ──gRPC──→ knownot.cc:5005x
7
+ ```
8
+
9
+ ## 安装
10
+
11
+ ```bash
12
+ pip install forgetting-engine-mcp
13
+ ```
14
+
15
+ ## 获取 Kin ID
16
+
17
+ 安装并配置好 MCP 后,在对话中调用:
18
+
19
+ ```
20
+ 使用 forgetting_engine_generate_kin 工具
21
+ → 返回 {"kin_id": "84729105361"}
22
+ ```
23
+
24
+ 复制输出的 kin_id 留存,后续 ingest/retrieve 时作为 kin_id 传入。
25
+
26
+ ## 配置
27
+
28
+ ### Claude Desktop
29
+
30
+ 编辑 `claude_desktop_config.json`:
31
+
32
+ ```json
33
+ {
34
+ "mcpServers": {
35
+ "forgetting-engine": {
36
+ "command": "mcp-forgetting-engine",
37
+ "env": {
38
+ "FE_ENDPOINT": "knownot.cc:50051",
39
+ "FE_API_KEY": "fe_ak_your_key_here"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ ### Claude Code
47
+
48
+ 编辑 `~/.claude.json`:
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "forgetting-engine": {
54
+ "command": "mcp-forgetting-engine",
55
+ "env": {
56
+ "FE_ENDPOINT": "knownot.cc:50051",
57
+ "FE_API_KEY": "fe_ak_your_key_here"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## 选择实例
65
+
66
+ | 实例 | FE_ENDPOINT | 说明 |
67
+ |------|-------------|------|
68
+ | 通用版 | `knownot.cc:50051` | allergy, preference, constraint, danger |
69
+ | 护肤增强版 | `knownot.cc:50052` | 通用 + skincare_* |
70
+ | 法律增强版 | `knownot.cc:50053` | 通用 + legal_* |
71
+ | 编程增强版 | `knownot.cc:50054` | 通用 + coding_* |
72
+
73
+ ## 环境变量
74
+
75
+ | 变量 | 必填 | 默认值 | 说明 |
76
+ |------|------|--------|------|
77
+ | `FE_ENDPOINT` | 否 | `knownot.cc:50051` | 遗忘引擎服务端地址 |
78
+ | `FE_API_KEY` | 是 | - | API Key(从 knownot.cc 门户创建) |
79
+
80
+ ## 可用工具
81
+
82
+ | 工具 | 说明 |
83
+ |------|------|
84
+ | `forgetting_engine_generate_kin` | 生成新的 11 位 kin_id |
85
+ | `forgetting_engine_ingest` | 摄入对话消息到长期记忆 |
86
+ | `forgetting_engine_retrieve` | 检索记忆上下文 |
87
+ | `forgetting_engine_ingest_features` | 回传/更新用户特征信息 |
88
+
89
+ ## 支持的 MCP 宿主
90
+
91
+ | 工具 | 配置文件 | 格式 | 状态 |
92
+ |------|---------|------|------|
93
+ | Claude Code | `~/.claude.json` | JSON | 已验证 |
94
+ | Claude Desktop | `claude_desktop_config.json` | JSON | 已验证 |
95
+ | Cursor | `~/.cursor/mcp.json` | JSON | 已验证 |
96
+ | Codex (OpenAI) | `~/.codex/config.toml` | TOML | 待验证 |
97
+ | Hermes | `~/.hermes/config.yaml` | YAML | 待验证 |
98
+ | OpenCode | `.opencode.json` | JSON/JSONC | 待验证 |
99
+ | OpenClaw | — | — | 不支持 MCP 客户端 |
100
+
101
+ ### Cursor 配置
102
+
103
+ 编辑 `~/.cursor/mcp.json`(全局)或 `.cursor/mcp.json`(项目):
104
+
105
+ ```json
106
+ {
107
+ "mcpServers": {
108
+ "forgetting-engine": {
109
+ "command": "mcp-forgetting-engine",
110
+ "env": {
111
+ "FE_ENDPOINT": "knownot.cc:50051",
112
+ "FE_API_KEY": "fe_ak_your_key_here"
113
+ }
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ ### Codex 配置
120
+
121
+ 编辑 `~/.codex/config.toml`:
122
+
123
+ ```toml
124
+ [mcp_servers.forgetting-engine]
125
+ type = "stdio"
126
+ command = "mcp-forgetting-engine"
127
+ args = []
128
+
129
+ [mcp_servers.forgetting-engine.env]
130
+ FE_ENDPOINT = "knownot.cc:50051"
131
+ FE_API_KEY = "fe_ak_your_key_here"
132
+ ```
133
+
134
+ ### Hermes 配置
135
+
136
+ 编辑 `~/.hermes/config.yaml`:
137
+
138
+ ```yaml
139
+ mcp_servers:
140
+ forgetting-engine:
141
+ command: mcp-forgetting-engine
142
+ env:
143
+ FE_ENDPOINT: knownot.cc:50051
144
+ FE_API_KEY: fe_ak_your_key_here
145
+ ```
146
+
147
+ ### OpenCode 配置
148
+
149
+ 编辑项目根目录的 `.opencode.json` 或 `~/.opencode.json`:
150
+
151
+ ```json
152
+ {
153
+ "$schema": "https://opencode.ai/config.json",
154
+ "mcp": {
155
+ "forgetting-engine": {
156
+ "type": "local",
157
+ "command": ["mcp-forgetting-engine"],
158
+ "enabled": true,
159
+ "environment": {
160
+ "FE_ENDPOINT": "knownot.cc:50051",
161
+ "FE_API_KEY": "fe_ak_your_key_here"
162
+ }
163
+ }
164
+ }
165
+ }
166
+ ```
167
+
168
+ ## 获取 API Key
169
+
170
+ 访问 [knownot.cc](https://knownot.cc) 登录后在 "API Keys" 页面创建 Key。
@@ -0,0 +1,24 @@
1
+ [build-system]
2
+ requires = ["setuptools>=64", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "forgetting-engine-mcp"
7
+ version = "0.4.0"
8
+ description = "遗忘引擎 MCP 客户端 — 将 Claude Desktop 连接到 knownot.cc 长期记忆服务"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.11"
12
+ dependencies = [
13
+ "grpcio>=1.80.0",
14
+ "protobuf>=4.21",
15
+ ]
16
+
17
+ [project.scripts]
18
+ mcp-forgetting-engine = "forgetting_engine_mcp.__main__:main"
19
+
20
+ [tool.setuptools.package-dir]
21
+ "" = "src"
22
+
23
+ [tool.setuptools.packages.find]
24
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,14 @@
1
+ """
2
+ 遗忘引擎 MCP 客户端。
3
+
4
+ 通过 MCP stdio 协议与 Claude Desktop 等 MCP 宿主对接,
5
+ 内部转调 gRPC 到 knownot.cc 遗忘引擎服务端。
6
+
7
+ 零本地依赖(无数据库、无 LLM、无引擎逻辑),pip install 即可用。
8
+
9
+ 环境变量:
10
+ FE_ENDPOINT — 服务端地址(默认 knownot.cc:50051)
11
+ FE_API_KEY — API Key(必填,从 knownot.cc 门户创建)
12
+ """
13
+
14
+ __version__ = "0.3.0"
@@ -0,0 +1,17 @@
1
+ """
2
+ 入口:python -m forgetting_engine_mcp / mcp-forgetting-engine
3
+
4
+ 读取环境变量 FE_ENDPOINT / FE_API_KEY,启动 MCP stdio 服务。
5
+ """
6
+
7
+ import asyncio
8
+
9
+ from forgetting_engine_mcp.server import main as _main_async
10
+
11
+
12
+ def main():
13
+ asyncio.run(_main_async())
14
+
15
+
16
+ if __name__ == "__main__":
17
+ main()
@@ -0,0 +1,72 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: forgetting_engine/proto/forgetting_engine.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'forgetting_engine/proto/forgetting_engine.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/forgetting_engine/proto/forgetting_engine.proto\x12\x11\x66orgetting_engine\"-\n\x0b\x46\x65\x61tureItem\x12\x10\n\x08\x63\x61tegory\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\"\x90\x01\n\nKinProfile\x12\x0e\n\x06kin_id\x18\x01 \x01(\t\x12\r\n\x05roles\x18\x02 \x01(\t\x12\x11\n\tlanguages\x18\x03 \x01(\t\x12\x12\n\nexperience\x18\x04 \x01(\t\x12\x13\n\x0bpreferences\x18\x05 \x01(\t\x12\x13\n\x0braw_profile\x18\x06 \x01(\t\x12\x12\n\nupdated_at\x18\x07 \x01(\t\"i\n\x0bUserProfile\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0e\n\x06traits\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x13\n\x0braw_profile\x18\x04 \x01(\t\x12\x12\n\nupdated_at\x18\x05 \x01(\t\";\n\x08Guidance\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x10\n\x08question\x18\x02 \x01(\t\x12\x0f\n\x07options\x18\x03 \x03(\t\"\x81\x01\n\rIngestRequest\x12\x0e\n\x06kin_id\x18\x01 \x01(\t\x12\x0c\n\x04role\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t\x12\x12\n\nsession_id\x18\x04 \x01(\t\x12\x30\n\x08\x66\x65\x61tures\x18\x05 \x03(\x0b\x32\x1e.forgetting_engine.FeatureItem\" \n\x0eIngestResponse\x12\x0e\n\x06msg_id\x18\x01 \x01(\t\"D\n\x0fRetrieveRequest\x12\x0e\n\x06kin_id\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x12\n\nsession_id\x18\x03 \x01(\t\"\xbb\x01\n\x10RetrieveResponse\x12\x32\n\x0bkin_profile\x18\x01 \x01(\x0b\x32\x1d.forgetting_engine.KinProfile\x12\x34\n\x0cuser_profile\x18\x02 \x01(\x0b\x32\x1e.forgetting_engine.UserProfile\x12\x0e\n\x06prompt\x18\x03 \x01(\t\x12-\n\x08guidance\x18\x04 \x03(\x0b\x32\x1b.forgetting_engine.Guidance\"Y\n\x15IngestFeaturesRequest\x12\x0e\n\x06kin_id\x18\x01 \x01(\t\x12\x30\n\x08\x66\x65\x61tures\x18\x02 \x03(\x0b\x32\x1e.forgetting_engine.FeatureItem\"\'\n\x16IngestFeaturesResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"\x14\n\x12GenerateKinRequest\"%\n\x13GenerateKinResponse\x12\x0e\n\x06kin_id\x18\x01 \x01(\t\"\x89\x01\n\x17UpdateKinProfileRequest\x12\x0e\n\x06kin_id\x18\x01 \x01(\t\x12\r\n\x05roles\x18\x02 \x01(\t\x12\x11\n\tlanguages\x18\x03 \x01(\t\x12\x12\n\nexperience\x18\x04 \x01(\t\x12\x13\n\x0bpreferences\x18\x05 \x01(\t\x12\x13\n\x0braw_profile\x18\x06 \x01(\t\"&\n\x18UpdateKinProfileResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"b\n\x18UpdateUserProfileRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0e\n\x06traits\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x13\n\x0braw_profile\x18\x04 \x01(\t\"\'\n\x19UpdateUserProfileResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\"3\n\x10HandshakeRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0e\n\x06kin_id\x18\x02 \x01(\t\"D\n\x11HandshakeResponse\x12\x0e\n\x06kin_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0e\n\x06is_new\x18\x03 \x01(\x08\x32\xb0\x05\n\x10\x46orgettingEngine\x12M\n\x06Ingest\x12 .forgetting_engine.IngestRequest\x1a!.forgetting_engine.IngestResponse\x12S\n\x08Retrieve\x12\".forgetting_engine.RetrieveRequest\x1a#.forgetting_engine.RetrieveResponse\x12\x65\n\x0eIngestFeatures\x12(.forgetting_engine.IngestFeaturesRequest\x1a).forgetting_engine.IngestFeaturesResponse\x12\\\n\x0bGenerateKin\x12%.forgetting_engine.GenerateKinRequest\x1a&.forgetting_engine.GenerateKinResponse\x12k\n\x10UpdateKinProfile\x12*.forgetting_engine.UpdateKinProfileRequest\x1a+.forgetting_engine.UpdateKinProfileResponse\x12n\n\x11UpdateUserProfile\x12+.forgetting_engine.UpdateUserProfileRequest\x1a,.forgetting_engine.UpdateUserProfileResponse\x12V\n\tHandshake\x12#.forgetting_engine.HandshakeRequest\x1a$.forgetting_engine.HandshakeResponseb\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'forgetting_engine.proto.forgetting_engine_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ DESCRIPTOR._loaded_options = None
34
+ _globals['_FEATUREITEM']._serialized_start=70
35
+ _globals['_FEATUREITEM']._serialized_end=115
36
+ _globals['_KINPROFILE']._serialized_start=118
37
+ _globals['_KINPROFILE']._serialized_end=262
38
+ _globals['_USERPROFILE']._serialized_start=264
39
+ _globals['_USERPROFILE']._serialized_end=369
40
+ _globals['_GUIDANCE']._serialized_start=371
41
+ _globals['_GUIDANCE']._serialized_end=430
42
+ _globals['_INGESTREQUEST']._serialized_start=433
43
+ _globals['_INGESTREQUEST']._serialized_end=562
44
+ _globals['_INGESTRESPONSE']._serialized_start=564
45
+ _globals['_INGESTRESPONSE']._serialized_end=596
46
+ _globals['_RETRIEVEREQUEST']._serialized_start=598
47
+ _globals['_RETRIEVEREQUEST']._serialized_end=666
48
+ _globals['_RETRIEVERESPONSE']._serialized_start=669
49
+ _globals['_RETRIEVERESPONSE']._serialized_end=856
50
+ _globals['_INGESTFEATURESREQUEST']._serialized_start=858
51
+ _globals['_INGESTFEATURESREQUEST']._serialized_end=947
52
+ _globals['_INGESTFEATURESRESPONSE']._serialized_start=949
53
+ _globals['_INGESTFEATURESRESPONSE']._serialized_end=988
54
+ _globals['_GENERATEKINREQUEST']._serialized_start=990
55
+ _globals['_GENERATEKINREQUEST']._serialized_end=1010
56
+ _globals['_GENERATEKINRESPONSE']._serialized_start=1012
57
+ _globals['_GENERATEKINRESPONSE']._serialized_end=1049
58
+ _globals['_UPDATEKINPROFILEREQUEST']._serialized_start=1052
59
+ _globals['_UPDATEKINPROFILEREQUEST']._serialized_end=1189
60
+ _globals['_UPDATEKINPROFILERESPONSE']._serialized_start=1191
61
+ _globals['_UPDATEKINPROFILERESPONSE']._serialized_end=1229
62
+ _globals['_UPDATEUSERPROFILEREQUEST']._serialized_start=1231
63
+ _globals['_UPDATEUSERPROFILEREQUEST']._serialized_end=1329
64
+ _globals['_UPDATEUSERPROFILERESPONSE']._serialized_start=1331
65
+ _globals['_UPDATEUSERPROFILERESPONSE']._serialized_end=1370
66
+ _globals['_HANDSHAKEREQUEST']._serialized_start=1372
67
+ _globals['_HANDSHAKEREQUEST']._serialized_end=1423
68
+ _globals['_HANDSHAKERESPONSE']._serialized_start=1425
69
+ _globals['_HANDSHAKERESPONSE']._serialized_end=1493
70
+ _globals['_FORGETTINGENGINE']._serialized_start=1496
71
+ _globals['_FORGETTINGENGINE']._serialized_end=2184
72
+ # @@protoc_insertion_point(module_scope)