hyperpocket-langgraph 0.0.1__py3-none-any.whl → 0.1.8__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,10 +8,9 @@ from pydantic import BaseModel
8
8
  from hyperpocket.config import pocket_logger
9
9
  from hyperpocket.pocket_main import ToolLike
10
10
  from hyperpocket.prompts import pocket_extended_tool_description
11
- from hyperpocket.server.server import PocketServerOperations
12
11
 
13
12
  try:
14
- from langchain_core.messages import AnyMessage, ToolMessage, AIMessage, RemoveMessage, SystemMessage
13
+ from langchain_core.messages import ToolMessage
15
14
  from langchain_core.tools import BaseTool, StructuredTool
16
15
  except ImportError:
17
16
  raise ImportError(
@@ -19,9 +18,7 @@ except ImportError:
19
18
  )
20
19
 
21
20
  try:
22
- from langgraph.constants import START, END
23
- from langgraph.graph import add_messages, StateGraph, MessagesState
24
- from langgraph.graph.state import CompiledStateGraph
21
+ from langgraph.graph import MessagesState
25
22
  except ImportError:
26
23
  raise ImportError(
27
24
  "You need to install langgraph to use pocket langgraph"
@@ -43,7 +40,7 @@ class PocketLanggraph(Pocket):
43
40
  auth: PocketAuth = None):
44
41
  super().__init__(tools, auth)
45
42
  self.langgraph_tools = {}
46
- for tool_name, tool_impl in self.tools.items():
43
+ for tool_name, tool_impl in self.core.tools.items():
47
44
  self.langgraph_tools[tool_name] = self._get_langgraph_tool(tool_impl)
48
45
 
49
46
  def get_tools(self):
@@ -133,66 +130,6 @@ class PocketLanggraph(Pocket):
133
130
 
134
131
  return _tool_node
135
132
 
136
- async def prepare_in_subprocess(self,
137
- tool_name: str,
138
- body: Any,
139
- thread_id: str = 'default',
140
- profile: str = 'default',
141
- *args, **kwargs):
142
- prepare = await self.server.call_in_subprocess(
143
- PocketServerOperations.PREPARE_AUTH,
144
- args,
145
- {
146
- 'tool_name': tool_name,
147
- 'body': body,
148
- 'thread_id': thread_id,
149
- 'profile': profile,
150
- **kwargs,
151
- },
152
- )
153
-
154
- return prepare
155
-
156
- async def authenticate_in_subprocess(self,
157
- tool_name: str,
158
- body: Any,
159
- thread_id: str = 'default',
160
- profile: str = 'default',
161
- *args, **kwargs):
162
- credentials = await self.server.call_in_subprocess(
163
- PocketServerOperations.AUTHENTICATE,
164
- args,
165
- {
166
- 'tool_name': tool_name,
167
- 'body': body,
168
- 'thread_id': thread_id,
169
- 'profile': profile,
170
- **kwargs,
171
- },
172
- )
173
-
174
- return credentials
175
-
176
- async def tool_call_in_subprocess(self,
177
- tool_name: str,
178
- body: Any,
179
- thread_id: str = 'default',
180
- profile: str = 'default',
181
- *args, **kwargs):
182
- result = await self.server.call_in_subprocess(
183
- PocketServerOperations.TOOL_CALL,
184
- args,
185
- {
186
- 'tool_name': tool_name,
187
- 'body': body,
188
- 'thread_id': thread_id,
189
- 'profile': profile,
190
- **kwargs,
191
- },
192
- )
193
-
194
- return result
195
-
196
133
  def _get_langgraph_tool(self, pocket_tool: PocketTool) -> BaseTool:
197
134
  def _invoke(body: Any, thread_id: str = 'default', profile: str = 'default', **kwargs) -> str:
198
135
  if isinstance(body, BaseModel):
@@ -1,16 +1,10 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: hyperpocket-langgraph
3
- Version: 0.0.1
4
- Summary:
5
- Author: moon
6
- Author-email: moon@vessl.ai
7
- Requires-Python: >=3.11,<4.0
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3.11
10
- Classifier: Programming Language :: Python :: 3.12
11
- Classifier: Programming Language :: Python :: 3.13
12
- Requires-Dist: hyperpocket (==0.0.3)
13
- Requires-Dist: langgraph (>=0.2.59,<0.3.0)
3
+ Version: 0.1.8
4
+ Author-email: moon <moon@vessl.ai>
5
+ Requires-Python: >=3.10
6
+ Requires-Dist: hyperpocket>=0.0.3
7
+ Requires-Dist: langgraph>=0.2.59
14
8
  Description-Content-Type: text/markdown
15
9
 
16
10
  # Langgraph extensions
@@ -23,12 +17,13 @@ Description-Content-Type: text/markdown
23
17
  ## Get Pocket Subgraph
24
18
 
25
19
  ```python
26
- import hyperpocket as pk
27
- from pocket_langgraph import PocketLanggraph
20
+ from hyperpocket.tool import from_git
21
+
22
+ from hyperpocket_langgraph import PocketLanggraph
28
23
 
29
24
  pocket = PocketLanggraph(tools=[
30
- *pk.curated_tools.SLACK, # SLACK = [slack_get_message, slack_post_message, ..]
31
- *pk.curated_tools.LINEAR,
25
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/get-message"),
26
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/post-message"),
32
27
  "https://github.com/my-org/some-awesome-tool",
33
28
  ])
34
29
 
@@ -41,15 +36,14 @@ pocket_node = pocket.get_tool_node()
41
36
  ```python
42
37
  import os
43
38
 
39
+ from hyperpocket.tool import from_git
44
40
  from langchain_openai import ChatOpenAI
45
41
 
46
- import hyperpocket as pk
47
- from pocket_langgraph import PocketLanggraph
42
+ from hyperpocket_langgraph import PocketLanggraph
48
43
 
49
44
  pocket = PocketLanggraph(tools=[
50
- *pk.curated_tools.SLACK, # SLACK = [slack_get_message, slack_post_message, ..]
51
- *pk.curated_tools.LINEAR,
52
- "https://github.com/my-org/some-awesome-tool",
45
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/get-message"),
46
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/post-message"),
53
47
  ])
54
48
 
55
49
  # get tools from pocket to bind llm
@@ -66,6 +60,7 @@ llm_with_tools = llm.bind_tools(tools)
66
60
  import os
67
61
  from typing import Annotated
68
62
 
63
+ from hyperpocket.tool import from_git
69
64
  from langchain_core.runnables import RunnableConfig
70
65
  from langchain_openai import ChatOpenAI
71
66
  from langgraph.checkpoint.memory import MemorySaver
@@ -74,14 +69,12 @@ from langgraph.graph.message import add_messages
74
69
  from langgraph.prebuilt import tools_condition
75
70
  from typing_extensions import TypedDict
76
71
 
77
- import hyperpocket as pk
78
- from pocket_langgraph import PocketLanggraph
72
+ from hyperpocket_langgraph import PocketLanggraph
79
73
 
80
74
  # Define pocket tools
81
75
  pocket = PocketLanggraph(tools=[
82
- *pk.curated_tools.SLACK, # SLACK = [slack_get_message, slack_post_message, ..]
83
- *pk.curated_tools.LINEAR,
84
- "https://github.com/my-org/some-awesome-tool",
76
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/get-message"),
77
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/post-message"),
85
78
  ])
86
79
 
87
80
  # Get Pocket ToolNode
@@ -138,14 +131,14 @@ by setting the `should_interrupt` flag when calling `get_tool_node`
138
131
  Perform authentication in a multi-turn way
139
132
 
140
133
  ```python
141
- import hyperpocket as pk
142
- from pocket_langgraph import PocketLanggraph
134
+ from hyperpocket.tool import from_git
135
+
136
+ from hyperpocket_langgraph import PocketLanggraph
143
137
 
144
138
  # Define pocket tools
145
139
  pocket = PocketLanggraph(tools=[
146
- *pk.curated_tools.SLACK, # SLACK = [slack_get_message, slack_post_message, ..]
147
- *pk.curated_tools.LINEAR,
148
- "https://github.com/my-org/some-awesome-tool",
140
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/get-message"),
141
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/post-message"),
149
142
  ])
150
143
 
151
144
  # Get Pocket ToolNode
@@ -155,14 +148,14 @@ pocket_node = pocket.get_tool_node(should_interrupt=False) # multi turn
155
148
  ### Human-in-the-loop Auth
156
149
 
157
150
  ```python
158
- import hyperpocket as pk
159
- from pocket_langgraph import PocketLanggraph
151
+ from hyperpocket.tool import from_git
152
+
153
+ from hyperpocket_langgraph import PocketLanggraph
160
154
 
161
155
  # Define pocket tools
162
156
  pocket = PocketLanggraph(tools=[
163
- *pk.curated_tools.SLACK, # SLACK = [slack_get_message, slack_post_message, ..]
164
- *pk.curated_tools.LINEAR,
165
- "https://github.com/my-org/some-awesome-tool",
157
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/get-message"),
158
+ from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/post-message"),
166
159
  ])
167
160
 
168
161
  # Get Pocket ToolNode
@@ -198,4 +191,3 @@ flow, there is a risk of incorrect decisions being made.
198
191
  Conversely, the human-in-the-loop approach eliminates this risk by always continuing the previous flow as it is,
199
192
  offering more predictable and controlled behavior for managing the auth flow.
200
193
 
201
-
@@ -0,0 +1,5 @@
1
+ hyperpocket_langgraph/__init__.py,sha256=0Az6FKsAvohOk8G4kUE99g6kyWz-Nf7dUuCuN3_pViY,97
2
+ hyperpocket_langgraph/pocket_langgraph.py,sha256=6_KfStimtuvW7W7TzyUWN4WJ5veybDgJv_bGCAtxOt4,6852
3
+ hyperpocket_langgraph-0.1.8.dist-info/METADATA,sha256=umosqoSEHq85vwsT7JiLfCMxAasNxLsvLFinxQ_sjeI,5827
4
+ hyperpocket_langgraph-0.1.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
5
+ hyperpocket_langgraph-0.1.8.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.1
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,5 +0,0 @@
1
- hyperpocket_langgraph/__init__.py,sha256=0Az6FKsAvohOk8G4kUE99g6kyWz-Nf7dUuCuN3_pViY,97
2
- hyperpocket_langgraph/pocket_langgraph.py,sha256=SqXZDdqvOKX66f0rRI8Ol-rNkL66yIXLFlToyorMvMs,9176
3
- hyperpocket_langgraph-0.0.1.dist-info/METADATA,sha256=9zG8UMulVdv3cVcSMHiOXzauJov9Jldx44myu1PRQeg,5671
4
- hyperpocket_langgraph-0.0.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
5
- hyperpocket_langgraph-0.0.1.dist-info/RECORD,,