uipath-core 0.2.3__tar.gz → 0.3.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.
Files changed (65) hide show
  1. {uipath_core-0.2.3 → uipath_core-0.3.0}/PKG-INFO +1 -1
  2. {uipath_core-0.2.3 → uipath_core-0.3.0}/pyproject.toml +1 -1
  3. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/__init__.py +14 -0
  4. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/content.py +1 -0
  5. uipath_core-0.3.0/src/uipath/core/chat/interrupt.py +92 -0
  6. {uipath_core-0.2.3 → uipath_core-0.3.0}/uv.lock +1 -1
  7. uipath_core-0.2.3/src/uipath/core/chat/interrupt.py +0 -35
  8. {uipath_core-0.2.3 → uipath_core-0.3.0}/.cursorrules +0 -0
  9. {uipath_core-0.2.3 → uipath_core-0.3.0}/.editorconfig +0 -0
  10. {uipath_core-0.2.3 → uipath_core-0.3.0}/.gitattributes +0 -0
  11. {uipath_core-0.2.3 → uipath_core-0.3.0}/.github/workflows/cd.yml +0 -0
  12. {uipath_core-0.2.3 → uipath_core-0.3.0}/.github/workflows/ci.yml +0 -0
  13. {uipath_core-0.2.3 → uipath_core-0.3.0}/.github/workflows/commitlint.yml +0 -0
  14. {uipath_core-0.2.3 → uipath_core-0.3.0}/.github/workflows/lint.yml +0 -0
  15. {uipath_core-0.2.3 → uipath_core-0.3.0}/.github/workflows/publish-dev.yml +0 -0
  16. {uipath_core-0.2.3 → uipath_core-0.3.0}/.github/workflows/test.yml +0 -0
  17. {uipath_core-0.2.3 → uipath_core-0.3.0}/.gitignore +0 -0
  18. {uipath_core-0.2.3 → uipath_core-0.3.0}/.pre-commit-config.yaml +0 -0
  19. {uipath_core-0.2.3 → uipath_core-0.3.0}/.python-version +0 -0
  20. {uipath_core-0.2.3 → uipath_core-0.3.0}/.vscode/extensions.json +0 -0
  21. {uipath_core-0.2.3 → uipath_core-0.3.0}/.vscode/launch.json +0 -0
  22. {uipath_core-0.2.3 → uipath_core-0.3.0}/.vscode/settings.json +0 -0
  23. {uipath_core-0.2.3 → uipath_core-0.3.0}/CONTRIBUTING.md +0 -0
  24. {uipath_core-0.2.3 → uipath_core-0.3.0}/LICENSE +0 -0
  25. {uipath_core-0.2.3 → uipath_core-0.3.0}/README.md +0 -0
  26. {uipath_core-0.2.3 → uipath_core-0.3.0}/justfile +0 -0
  27. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/__init__.py +0 -0
  28. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/async_stream.py +0 -0
  29. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/citation.py +0 -0
  30. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/conversation.py +0 -0
  31. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/error.py +0 -0
  32. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/event.py +0 -0
  33. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/exchange.py +0 -0
  34. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/message.py +0 -0
  35. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/meta.py +0 -0
  36. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/chat/tool.py +0 -0
  37. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/errors/__init__.py +0 -0
  38. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/errors/errors.py +0 -0
  39. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/guardrails/__init__.py +0 -0
  40. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/guardrails/_deterministic_guardrails_service.py +0 -0
  41. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/guardrails/_evaluators.py +0 -0
  42. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/guardrails/guardrails.py +0 -0
  43. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/py.typed +0 -0
  44. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/serialization/__init__.py +0 -0
  45. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/serialization/json.py +0 -0
  46. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/__init__.py +0 -0
  47. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/_utils.py +0 -0
  48. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/decorators.py +0 -0
  49. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/exporters.py +0 -0
  50. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/processors.py +0 -0
  51. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/span_utils.py +0 -0
  52. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/trace_manager.py +0 -0
  53. {uipath_core-0.2.3 → uipath_core-0.3.0}/src/uipath/core/tracing/types.py +0 -0
  54. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/__init__.py +0 -0
  55. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/conftest.py +0 -0
  56. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/guardrails/test_deterministic_guardrails_service.py +0 -0
  57. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/serialization/test_json.py +0 -0
  58. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_external_integration.py +0 -0
  59. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_serialization.py +0 -0
  60. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_span_filtering.py +0 -0
  61. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_span_nesting.py +0 -0
  62. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_span_registry.py +0 -0
  63. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_trace_manager.py +0 -0
  64. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_traced.py +0 -0
  65. {uipath_core-0.2.3 → uipath_core-0.3.0}/tests/tracing/test_tracing_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath-core
3
- Version: 0.2.3
3
+ Version: 0.3.0
4
4
  Summary: UiPath Core abstractions
5
5
  Project-URL: Homepage, https://uipath.com
6
6
  Project-URL: Repository, https://github.com/UiPath/uipath-core-python
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "uipath-core"
3
- version = "0.2.3"
3
+ version = "0.3.0"
4
4
  description = "UiPath Core abstractions"
5
5
  readme = { file = "README.md", content-type = "text/markdown" }
6
6
  requires-python = ">=3.11"
@@ -79,9 +79,16 @@ from .exchange import (
79
79
  UiPathConversationExchangeStartEvent,
80
80
  )
81
81
  from .interrupt import (
82
+ InterruptTypeEnum,
83
+ UiPathConversationGenericInterruptEndEvent,
84
+ UiPathConversationGenericInterruptStartEvent,
82
85
  UiPathConversationInterruptEndEvent,
83
86
  UiPathConversationInterruptEvent,
84
87
  UiPathConversationInterruptStartEvent,
88
+ UiPathConversationToolCallConfirmationEndValue,
89
+ UiPathConversationToolCallConfirmationInterruptEndEvent,
90
+ UiPathConversationToolCallConfirmationInterruptStartEvent,
91
+ UiPathConversationToolCallConfirmationValue,
85
92
  )
86
93
  from .message import (
87
94
  UiPathConversationMessage,
@@ -122,9 +129,16 @@ __all__ = [
122
129
  "UiPathConversationMessageEvent",
123
130
  "UiPathConversationMessage",
124
131
  # Interrupt
132
+ "InterruptTypeEnum",
125
133
  "UiPathConversationInterruptStartEvent",
126
134
  "UiPathConversationInterruptEndEvent",
127
135
  "UiPathConversationInterruptEvent",
136
+ "UiPathConversationToolCallConfirmationValue",
137
+ "UiPathConversationToolCallConfirmationEndValue",
138
+ "UiPathConversationToolCallConfirmationInterruptStartEvent",
139
+ "UiPathConversationToolCallConfirmationInterruptEndEvent",
140
+ "UiPathConversationGenericInterruptStartEvent",
141
+ "UiPathConversationGenericInterruptEndEvent",
128
142
  # Content
129
143
  "UiPathConversationContentPartChunkEvent",
130
144
  "UiPathConversationContentPartStartEvent",
@@ -87,5 +87,6 @@ class UiPathConversationContentPart(BaseModel):
87
87
  citations: list[UiPathConversationCitation] | None = None
88
88
  is_transcript: bool | None = Field(None, alias="isTranscript")
89
89
  is_incomplete: bool | None = Field(None, alias="isIncomplete")
90
+ name: str | None = None
90
91
 
91
92
  model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -0,0 +1,92 @@
1
+ """Interrupt events for human-in-the-loop patterns."""
2
+
3
+ from enum import Enum
4
+ from typing import Any, Literal, Union
5
+
6
+ from pydantic import BaseModel, ConfigDict, Field
7
+
8
+
9
+ class InterruptTypeEnum(str, Enum):
10
+ """Enum of known interrupt types."""
11
+
12
+ TOOL_CALL_CONFIRMATION = "uipath_cas_tool_call_confirmation"
13
+
14
+
15
+ class UiPathConversationToolCallConfirmationValue(BaseModel):
16
+ """Schema for tool call confirmation interrupt value."""
17
+
18
+ tool_call_id: str = Field(..., alias="toolCallId")
19
+ tool_name: str = Field(..., alias="toolName")
20
+ input_schema: Any = Field(..., alias="inputSchema")
21
+ input_value: Any | None = Field(None, alias="inputValue")
22
+
23
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
24
+
25
+
26
+ class UiPathConversationToolCallConfirmationInterruptStartEvent(BaseModel):
27
+ """Tool call confirmation interrupt start event with strong typing."""
28
+
29
+ type: Literal["uipath_cas_tool_call_confirmation"]
30
+ value: UiPathConversationToolCallConfirmationValue
31
+
32
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
33
+
34
+
35
+ class UiPathConversationGenericInterruptStartEvent(BaseModel):
36
+ """Generic interrupt start event for custom interrupt types."""
37
+
38
+ type: str
39
+ value: Any
40
+
41
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
42
+
43
+
44
+ UiPathConversationInterruptStartEvent = Union[
45
+ UiPathConversationToolCallConfirmationInterruptStartEvent,
46
+ UiPathConversationGenericInterruptStartEvent,
47
+ ]
48
+
49
+
50
+ class UiPathConversationToolCallConfirmationEndValue(BaseModel):
51
+ """Schema for tool call confirmation end value."""
52
+
53
+ approved: bool
54
+ input: Any | None = None
55
+
56
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
57
+
58
+
59
+ class UiPathConversationToolCallConfirmationInterruptEndEvent(BaseModel):
60
+ """Tool call confirmation interrupt end event with strong typing."""
61
+
62
+ type: Literal["uipath_cas_tool_call_confirmation"]
63
+ value: UiPathConversationToolCallConfirmationEndValue
64
+
65
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
66
+
67
+
68
+ class UiPathConversationGenericInterruptEndEvent(BaseModel):
69
+ """Generic interrupt end event for custom interrupt types."""
70
+
71
+ type: str
72
+ value: Any
73
+
74
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
75
+
76
+
77
+ UiPathConversationInterruptEndEvent = Union[
78
+ UiPathConversationToolCallConfirmationInterruptEndEvent,
79
+ UiPathConversationGenericInterruptEndEvent,
80
+ ]
81
+
82
+
83
+ class UiPathConversationInterruptEvent(BaseModel):
84
+ """Encapsulates interrupt-related events within a message."""
85
+
86
+ interrupt_id: str = Field(..., alias="interruptId")
87
+ start: UiPathConversationInterruptStartEvent | None = Field(
88
+ None, alias="startInterrupt"
89
+ )
90
+ end: UiPathConversationInterruptEndEvent | None = Field(None, alias="endInterrupt")
91
+
92
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -991,7 +991,7 @@ wheels = [
991
991
 
992
992
  [[package]]
993
993
  name = "uipath-core"
994
- version = "0.2.3"
994
+ version = "0.3.0"
995
995
  source = { editable = "." }
996
996
  dependencies = [
997
997
  { name = "opentelemetry-instrumentation" },
@@ -1,35 +0,0 @@
1
- """Interrupt events for human-in-the-loop patterns."""
2
-
3
- from typing import Any
4
-
5
- from pydantic import BaseModel, ConfigDict, Field
6
-
7
-
8
- class UiPathConversationInterruptStartEvent(BaseModel):
9
- """Signals the start of an interrupt - a pause point where the agent needs external input."""
10
-
11
- type: str
12
- value: Any
13
-
14
- model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
15
-
16
-
17
- class UiPathConversationInterruptEndEvent(BaseModel):
18
- """Signals the interrupt end event with the provided value."""
19
-
20
- # Can be any type
21
- model_config = ConfigDict(
22
- validate_by_name=True, validate_by_alias=True, extra="allow"
23
- )
24
-
25
-
26
- class UiPathConversationInterruptEvent(BaseModel):
27
- """Encapsulates interrupt-related events within a message."""
28
-
29
- interrupt_id: str = Field(..., alias="interruptId")
30
- start: UiPathConversationInterruptStartEvent | None = Field(
31
- None, alias="startInterrupt"
32
- )
33
- end: Any | None = Field(None, alias="endInterrupt")
34
-
35
- model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes