10xscale-agentflow-cli 0.1.9__tar.gz → 0.2.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 (92) hide show
  1. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/10xscale_agentflow_cli.egg-info/PKG-INFO +1 -1
  2. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/PKG-INFO +1 -1
  3. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/auth/jwt_auth.py +6 -1
  4. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/loader.py +8 -0
  5. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/checkpointer/services/checkpointer_service.py +2 -1
  6. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/graph/services/graph_service.py +5 -5
  7. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/parse_output.py +4 -4
  8. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/pyproject.toml +1 -1
  9. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/tests/test_utils_parse_and_callable.py +2 -5
  10. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/10xscale_agentflow_cli.egg-info/SOURCES.txt +0 -0
  11. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/10xscale_agentflow_cli.egg-info/dependency_links.txt +0 -0
  12. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/10xscale_agentflow_cli.egg-info/entry_points.txt +0 -0
  13. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/10xscale_agentflow_cli.egg-info/not-zip-safe +0 -0
  14. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/10xscale_agentflow_cli.egg-info/requires.txt +0 -0
  15. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/10xscale_agentflow_cli.egg-info/top_level.txt +0 -0
  16. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/MANIFEST.in +0 -0
  17. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/README.md +0 -0
  18. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/Task.md +0 -0
  19. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow.json +0 -0
  20. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/__init__.py +0 -0
  21. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/__init__.py +0 -0
  22. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/commands/__init__.py +0 -0
  23. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/commands/api.py +0 -0
  24. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/commands/build.py +0 -0
  25. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/commands/init.py +0 -0
  26. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/commands/version.py +0 -0
  27. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/constants.py +0 -0
  28. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/core/__init__.py +0 -0
  29. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/core/config.py +0 -0
  30. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/core/output.py +0 -0
  31. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/core/validation.py +0 -0
  32. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/exceptions.py +0 -0
  33. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/logger.py +0 -0
  34. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/main.py +0 -0
  35. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/templates/__init__.py +0 -0
  36. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/cli/templates/defaults.py +0 -0
  37. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/__init__.py +0 -0
  38. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/__init__.py +0 -0
  39. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/__init__.py +0 -0
  40. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/auth/__init__.py +0 -0
  41. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/auth/auth_backend.py +0 -0
  42. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/auth/base_auth.py +0 -0
  43. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/config/__init__.py +0 -0
  44. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/config/graph_config.py +0 -0
  45. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/config/sentry_config.py +0 -0
  46. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/config/settings.py +0 -0
  47. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/config/setup_logs.py +0 -0
  48. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/config/setup_middleware.py +0 -0
  49. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/config/worker_middleware.py +0 -0
  50. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/exceptions/__init__.py +0 -0
  51. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/exceptions/general_exception.py +0 -0
  52. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/exceptions/handle_errors.py +0 -0
  53. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/exceptions/resources_exceptions.py +0 -0
  54. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/core/exceptions/user_exception.py +0 -0
  55. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/main.py +0 -0
  56. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/__init__.py +0 -0
  57. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/checkpointer/__init__.py +0 -0
  58. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/checkpointer/router.py +0 -0
  59. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/checkpointer/schemas/__init__.py +0 -0
  60. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/checkpointer/schemas/checkpointer_schemas.py +0 -0
  61. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/checkpointer/services/__init__.py +0 -0
  62. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/graph/__init__.py +0 -0
  63. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/graph/router.py +0 -0
  64. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/graph/schemas/__init__.py +0 -0
  65. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/graph/schemas/graph_schemas.py +0 -0
  66. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/graph/services/__init__.py +0 -0
  67. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/ping/__init__.py +0 -0
  68. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/ping/router.py +0 -0
  69. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/setup_router.py +0 -0
  70. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/store/__init__.py +0 -0
  71. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/store/router.py +0 -0
  72. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/store/schemas/__init__.py +0 -0
  73. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/store/schemas/store_schemas.py +0 -0
  74. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/store/services/__init__.py +0 -0
  75. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/routers/store/services/store_service.py +0 -0
  76. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/tasks/__init__.py +0 -0
  77. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/tasks/user_tasks.py +0 -0
  78. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/__init__.py +0 -0
  79. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/callable_helper.py +0 -0
  80. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/response_helper.py +0 -0
  81. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/schemas/__init__.py +0 -0
  82. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/schemas/output_schemas.py +0 -0
  83. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/schemas/user_schemas.py +0 -0
  84. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/snowflake_id_generator.py +0 -0
  85. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/swagger_helper.py +0 -0
  86. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/utils/thread_name_generator.py +0 -0
  87. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/agentflow_cli/src/app/worker.py +0 -0
  88. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/graph/__init__.py +0 -0
  89. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/graph/react.py +0 -0
  90. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/graph/thread_name_generator.py +0 -0
  91. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/scripts/generate_docs.py +0 -0
  92. {10xscale_agentflow_cli-0.1.9 → 10xscale_agentflow_cli-0.2.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: 10xscale-agentflow-cli
3
- Version: 0.1.9
3
+ Version: 0.2.0
4
4
  Summary: CLI and API for 10xscale AgentFlow
5
5
  Author-email: 10xscale <contact@10xscale.ai>
6
6
  Maintainer-email: Shudipto Trafder <shudiptotrafder@gmail.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: 10xscale-agentflow-cli
3
- Version: 0.1.9
3
+ Version: 0.2.0
4
4
  Summary: CLI and API for 10xscale AgentFlow
5
5
  Author-email: 10xscale <contact@10xscale.ai>
6
6
  Maintainer-email: Shudipto Trafder <shudiptotrafder@gmail.com>
@@ -44,6 +44,11 @@ class JwtAuth(BaseAuth):
44
44
  jwt_secret_key = os.environ.get("JWT_SECRET_KEY", None)
45
45
  jwt_algorithm = os.environ.get("JWT_ALGORITHM", None)
46
46
 
47
+ # check bearer token then remove barer prefix
48
+ token = credential.credentials
49
+ if token.lower().startswith("bearer "):
50
+ token = token[7:]
51
+
47
52
  if jwt_secret_key is None or jwt_algorithm is None:
48
53
  raise UserAccountError(
49
54
  message="JWT settings are not configured",
@@ -52,7 +57,7 @@ class JwtAuth(BaseAuth):
52
57
 
53
58
  try:
54
59
  decoded_token = jwt.decode(
55
- credential.credentials,
60
+ token,
56
61
  jwt_secret_key, # type: ignore
57
62
  algorithms=[jwt_algorithm], # type: ignore
58
63
  )
@@ -202,6 +202,14 @@ async def attach_all_modules(
202
202
  path,
203
203
  )
204
204
  container.bind_instance(BaseAuth, auth_backend)
205
+ elif method == "jwt":
206
+ from agentflow_cli.src.app.core.auth.jwt_auth import JwtAuth
207
+
208
+ jwt_auth = JwtAuth()
209
+ container.bind_instance(BaseAuth, jwt_auth)
210
+
211
+ elif method == "none":
212
+ container.bind_instance(BaseAuth, None, allow_none=True)
205
213
  else:
206
214
  # bind None
207
215
  container.bind_instance(BaseAuth, None, allow_none=True)
@@ -174,7 +174,8 @@ class CheckpointerService:
174
174
  base: dict[str, Any] = {}
175
175
  if old_state is not None:
176
176
  # Keep full dump so we can preserve existing fields
177
- base = old_state.model_dump()
177
+ # Use serialize_as_any=True to include subclass fields
178
+ base = old_state.model_dump(serialize_as_any=True)
178
179
 
179
180
  merged: dict[str, Any] = {**base}
180
181
 
@@ -247,7 +247,7 @@ class GraphService:
247
247
 
248
248
  return GraphInvokeOutputSchema(
249
249
  messages=messages,
250
- state=raw_state.model_dump() if raw_state else None,
250
+ state=raw_state.model_dump(serialize_as_any=True) if raw_state else None,
251
251
  context=context,
252
252
  summary=context_summary,
253
253
  meta=meta,
@@ -295,7 +295,7 @@ class GraphService:
295
295
  mt = chunk.metadata or {}
296
296
  mt.update(meta)
297
297
  chunk.metadata = mt
298
- yield chunk.model_dump_json()
298
+ yield chunk.model_dump_json(serialize_as_any=True)
299
299
  if (
300
300
  self.config.thread_name_generator_path
301
301
  and meta["is_new_thread"]
@@ -317,7 +317,7 @@ class GraphService:
317
317
  event=StreamEvent.UPDATES,
318
318
  data={"status": "completed"},
319
319
  metadata=meta,
320
- ).model_dump_json()
320
+ ).model_dump_json(serialize_as_any=True)
321
321
 
322
322
  except Exception as e:
323
323
  logger.error(f"Graph streaming failed: {e}")
@@ -416,7 +416,7 @@ class GraphService:
416
416
  "success": True,
417
417
  "message": "No messages found in state",
418
418
  "removed_count": 0,
419
- "state": state.model_dump_json(),
419
+ "state": state.model_dump_json(serialize_as_any=True),
420
420
  }
421
421
 
422
422
  filtered = [m for m in messages if not self._has_empty_tool_call(m)]
@@ -433,7 +433,7 @@ class GraphService:
433
433
  "success": True,
434
434
  "message": message,
435
435
  "removed_count": removed_count,
436
- "state": state.model_dump_json(),
436
+ "state": state.model_dump_json(serialize_as_any=True),
437
437
  }
438
438
  except Exception as e:
439
439
  logger.error(f"Fix graph operation failed: {e}")
@@ -7,11 +7,11 @@ from agentflow_cli.src.app.core.config.settings import Settings
7
7
 
8
8
  def parse_state_output(settings: Settings, response: BaseModel) -> dict[str, Any]:
9
9
  # if settings.IS_DEBUG:
10
- # return response.model_dump(exclude={"execution_meta"})
11
- return response.model_dump()
10
+ # return response.model_dump(exclude={"execution_meta"}, serialize_as_any=True)
11
+ return response.model_dump(serialize_as_any=True)
12
12
 
13
13
 
14
14
  def parse_message_output(settings: Settings, response: BaseModel) -> dict[str, Any]:
15
15
  # if settings.IS_DEBUG:
16
- # return response.model_dump(exclude={"raw"})
17
- return response.model_dump()
16
+ # return response.model_dump(exclude={"raw"}, serialize_as_any=True)
17
+ return response.model_dump(serialize_as_any=True)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "10xscale-agentflow-cli"
7
- version = "0.1.9"
7
+ version = "0.2.0"
8
8
  description = "CLI and API for 10xscale AgentFlow"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -28,9 +28,7 @@ def test_parse_state_output(is_debug: bool):
28
28
  settings = Settings(IS_DEBUG=is_debug)
29
29
  model = _StateModel(a=1, b="x", execution_meta={"duration": 123})
30
30
  out = parse_state_output(settings, model)
31
- # execution_meta excluded only in debug mode per implementation
32
- # Since parse_state_output doesn't filter execution_meta (commented out),
33
- # it should always be present regardless of debug mode
31
+ # Current implementation always includes execution_meta regardless of debug
34
32
  assert out["execution_meta"] == {"duration": 123}
35
33
  assert out["a"] == 1 and out["b"] == "x"
36
34
 
@@ -40,8 +38,7 @@ def test_parse_message_output(is_debug: bool):
40
38
  settings = Settings(IS_DEBUG=is_debug)
41
39
  model = _MessageModel(content="hello", raw={"tokens": 5})
42
40
  out = parse_message_output(settings, model)
43
- # Since parse_message_output doesn't filter raw (commented out),
44
- # it should always be present regardless of debug mode
41
+ # Current implementation always includes raw regardless of debug
45
42
  assert out["raw"] == {"tokens": 5}
46
43
  assert out["content"] == "hello"
47
44