xpander-sdk 2.0.171__tar.gz → 2.0.173__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 (104) hide show
  1. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/PKG-INFO +1 -1
  2. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/setup.py +1 -1
  3. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/backend/frameworks/agno.py +44 -19
  4. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk.egg-info/PKG-INFO +1 -1
  5. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/LICENSE +0 -0
  6. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/README.md +0 -0
  7. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/pyproject.toml +0 -0
  8. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/setup.cfg +0 -0
  9. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/__init__.py +0 -0
  10. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/consts/__init__.py +0 -0
  11. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/consts/api_routes.py +0 -0
  12. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/core/__init__.py +0 -0
  13. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/core/module_base.py +0 -0
  14. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/core/state.py +0 -0
  15. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/core/xpander_api_client.py +0 -0
  16. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/exceptions/__init__.py +0 -0
  17. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/exceptions/module_exception.py +0 -0
  18. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/__init__.py +0 -0
  19. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/activity.py +0 -0
  20. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/compactization.py +0 -0
  21. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/configuration.py +0 -0
  22. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/deep_planning.py +0 -0
  23. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/events.py +0 -0
  24. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/frameworks.py +0 -0
  25. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/shared.py +0 -0
  26. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/models/user.py +0 -0
  27. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/__init__.py +0 -0
  28. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/__init__.py +0 -0
  29. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/agents_module.py +0 -0
  30. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/models/__init__.py +0 -0
  31. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/models/agent.py +0 -0
  32. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/models/agent_list.py +0 -0
  33. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/models/knowledge_bases.py +0 -0
  34. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/sub_modules/__init__.py +0 -0
  35. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/sub_modules/agent.py +0 -0
  36. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/utils/__init__.py +0 -0
  37. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/agents/utils/generic.py +0 -0
  38. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/backend/__init__.py +0 -0
  39. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/backend/backend_module.py +0 -0
  40. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/backend/frameworks/__init__.py +0 -0
  41. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/backend/frameworks/dispatch.py +0 -0
  42. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/backend/utils/__init__.py +0 -0
  43. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/backend/utils/mcp_oauth.py +0 -0
  44. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/__init__.py +0 -0
  45. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/decorators/__init__.py +0 -0
  46. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/decorators/on_boot.py +0 -0
  47. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/decorators/on_shutdown.py +0 -0
  48. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/decorators/on_task.py +0 -0
  49. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/events_module.py +0 -0
  50. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/models/__init__.py +0 -0
  51. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/models/deployments.py +0 -0
  52. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/models/events.py +0 -0
  53. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/utils/__init__.py +0 -0
  54. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/utils/generic.py +0 -0
  55. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/events/utils/git_init.py +0 -0
  56. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/__init__.py +0 -0
  57. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/knowledge_bases_module.py +0 -0
  58. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/models/__init__.py +0 -0
  59. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/models/knowledge_bases.py +0 -0
  60. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/sub_modules/__init__.py +0 -0
  61. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base.py +0 -0
  62. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/sub_modules/knowledge_base_document_item.py +0 -0
  63. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/knowledge_bases/utils/__init__.py +0 -0
  64. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/__init__.py +0 -0
  65. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/models/__init__.py +0 -0
  66. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/models/task.py +0 -0
  67. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/models/tasks_list.py +0 -0
  68. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/sub_modules/__init__.py +0 -0
  69. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/sub_modules/task.py +0 -0
  70. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/tasks_module.py +0 -0
  71. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/utils/__init__.py +0 -0
  72. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tasks/utils/files.py +0 -0
  73. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/__init__.py +0 -0
  74. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/decorators/__init__.py +0 -0
  75. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/decorators/register_tool.py +0 -0
  76. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/models/__init__.py +0 -0
  77. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/models/mcp.py +0 -0
  78. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/models/tool_invocation_result.py +0 -0
  79. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/sub_modules/__init__.py +0 -0
  80. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/sub_modules/tool.py +0 -0
  81. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/tools_repository_module.py +0 -0
  82. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/utils/__init__.py +0 -0
  83. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/utils/generic.py +0 -0
  84. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/utils/local_tools.py +0 -0
  85. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/modules/tools_repository/utils/schemas.py +0 -0
  86. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/utils/__init__.py +0 -0
  87. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/utils/agents/__init__.py +0 -0
  88. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/utils/agents/compactization_agent.py +0 -0
  89. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/utils/env.py +0 -0
  90. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/utils/event_loop.py +0 -0
  91. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/utils/generic.py +0 -0
  92. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk/utils/tools.py +0 -0
  93. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk.egg-info/SOURCES.txt +0 -0
  94. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk.egg-info/dependency_links.txt +0 -0
  95. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk.egg-info/requires.txt +0 -0
  96. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/src/xpander_sdk.egg-info/top_level.txt +0 -0
  97. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_agents_module.py +0 -0
  98. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_api_client.py +0 -0
  99. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_backend_module.py +0 -0
  100. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_boot_shutdown_handlers.py +0 -0
  101. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_configuration.py +0 -0
  102. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_knowledge_bases_module.py +0 -0
  103. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_tasks_module.py +0 -0
  104. {xpander_sdk-2.0.171 → xpander_sdk-2.0.173}/tests/test_tools_repository.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.171
3
+ Version: 2.0.173
4
4
  Summary: xpander.ai Backend-as-a-service for AI Agents - SDK
5
5
  Home-page: https://www.xpander.ai
6
6
  Author: xpanderAI
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setup(
7
7
  name="xpander-sdk",
8
- version="2.0.171",
8
+ version="2.0.173",
9
9
  author="xpanderAI",
10
10
  author_email="dev@xpander.ai",
11
11
  description="xpander.ai Backend-as-a-service for AI Agents - SDK",
@@ -249,12 +249,14 @@ def _configure_deep_planning_guidance(args: Dict[str, Any], agent: Agent, task:
249
249
  ### **Core Workflow**
250
250
  1. **CREATE** plan at the start (`xpcreate_agent_plan`)
251
251
  2. **START** plan execution (`xpstart_execution_plan`) - MANDATORY to enable enforcement
252
- 3. **CHECK** plan before each action (`xpget_agent_plan`)
252
+ 3. **CHECK** plan before each action (`xpget_agent_plan`) - note the FULL UUID of the task you'll work on
253
253
  4. **DO THE WORK** for one task
254
- 5. **COMPLETE** task IMMEDIATELY - call `xpcomplete_agent_plan_item` RIGHT AFTER finishing work (DO NOT DELAY!)
254
+ 5. **COMPLETE** task IMMEDIATELY - call `xpcomplete_agent_plan_items` with the FULL UUID RIGHT AFTER finishing work (DO NOT DELAY!)
255
255
  6. **ASK** user for info if needed (`xpask_for_information`) - MANDATORY if you need input or want to pause
256
256
  7. Repeat steps 3-6 until all tasks are done
257
257
 
258
+ **UUID REQUIREMENT**: All task IDs are full UUIDs (e.g., '35f56b8e-1427-4a5e-a1c0-57a4f7ec8e92'). You MUST use the exact complete UUID string from the plan when marking tasks complete.
259
+
258
260
  **CRITICAL RULES - ABSOLUTE REQUIREMENTS**:
259
261
  - Mark each task complete THE MOMENT you finish it - not later, not at the end, RIGHT AWAY!
260
262
  - **CHECK BEFORE ASKING**: Did you call xpstart_execution_plan?
@@ -307,26 +309,38 @@ def _configure_deep_planning_guidance(args: Dict[str, Any], agent: Agent, task:
307
309
 
308
310
  ---
309
311
 
310
- #### **3. xpcomplete_agent_plan_item** - Mark Task Complete
311
- **When to use**: **IMMEDIATELY** after finishing each task (NOT before, NOT later, RIGHT NOW!)
312
+ #### **3. xpcomplete_agent_plan_items** - Mark Task(s) Complete
313
+ **When to use**: **IMMEDIATELY** after finishing one or more tasks (NOT before, NOT later, RIGHT NOW!)
312
314
 
313
315
  **How to use**:
314
316
  ```json
317
+ // Single task
315
318
  {
316
319
  "body_params": {
317
- "id": "task-uuid-from-plan"
320
+ "ids": ["35f56b8e-1427-4a5e-a1c0-57a4f7ec8e92"]
321
+ }
322
+ }
323
+
324
+ // Multiple tasks (when finishing related tasks together)
325
+ {
326
+ "body_params": {
327
+ "ids": ["35f56b8e-1427-4a5e-a1c0-57a4f7ec8e92", "8a3c4f12-9b7e-4d2a-b5c8-1f6e9a0d3b4c", "f2b9d1c7-3e8a-4b6f-9d2c-5a7e1f4b8c3d"]
318
328
  }
319
329
  }
320
330
  ```
321
331
  **🚨 CRITICAL - NON-NEGOTIABLE RULES**:
322
- - Call THIS TOOL the INSTANT you finish a task
323
- - DO NOT wait to mark multiple tasks at once
332
+ - IDs must be the FULL UUID strings (e.g., '35f56b8e-1427-4a5e-a1c0-57a4f7ec8e92') from the plan's 'id' field
333
+ - Get these exact UUID strings from xpget_agent_plan before calling this tool
334
+ - Call THIS TOOL the INSTANT you finish task(s)
335
+ - Can mark single or multiple tasks complete in one call
336
+ - Use multiple FULL UUIDs when finishing related tasks at the same time
337
+ - DO NOT use shortened IDs, abbreviations, or partial UUIDs - must be complete UUID strings
324
338
  - DO NOT postpone marking completion
325
339
  - DO NOT be lazy - mark it complete RIGHT AFTER the work is done
326
340
  - This is MANDATORY for progress tracking and continuation
327
341
  - If you finish a task and don't mark it complete immediately, you are doing it WRONG
328
342
 
329
- **Pattern**: Finish work → IMMEDIATELY call xpcomplete_agent_plan_item → Move to next task
343
+ **Pattern**: Finish work → Get task UUID from plan → IMMEDIATELY call xpcomplete_agent_plan_items with FULL UUID → Move to next task
330
344
 
331
345
  ---
332
346
 
@@ -434,15 +448,20 @@ def _configure_deep_planning_guidance(args: Dict[str, Any], agent: Agent, task:
434
448
  - **START** the plan with `xpstart_execution_plan` after creating it
435
449
  - Use descriptive, actionable task titles
436
450
  - Check plan before each action to stay oriented
451
+ - **Always use FULL UUID strings when marking tasks complete** (e.g., '35f56b8e-1427-4a5e-a1c0-57a4f7ec8e92')
452
+ - **Get the exact UUID from xpget_agent_plan** - copy the full 'id' field value
437
453
  - **Mark tasks complete THE INSTANT you finish them - NO DELAYS, NO EXCEPTIONS**
454
+ - **Can mark multiple tasks at once if finished together** (e.g., related tasks done simultaneously)
438
455
  - **ALWAYS use `xpask_for_information` when you need user input or want to pause**
439
456
  - Call plan tools **sequentially** (one at a time, never in parallel)
440
- - Follow the pattern: DO WORK → MARK COMPLETE → NEXT TASK
457
+ - Follow the pattern: DO WORK → GET UUID → MARK COMPLETE WITH FULL UUID → NEXT TASK
441
458
 
442
459
  ❌ **DON'T - THESE ARE FORBIDDEN:**
443
460
  - Mark tasks complete before they're actually done
461
+ - **Use shortened, partial, or abbreviated task IDs** - MUST use complete UUID strings!
462
+ - **Use made-up or guessed UUIDs** - MUST get exact UUID from xpget_agent_plan!
444
463
  - **Be lazy and wait to mark tasks complete later** (FORBIDDEN!)
445
- - **Batch mark multiple tasks at the end** (WRONG! Mark each immediately!)
464
+ - **Postpone marking completion to batch at the end** (WRONG! Mark immediately when done!)
446
465
  - **AFTER plan starts: NEVER write questions in your response text** ("Before I proceed...", "I need clarification...", etc.)
447
466
  - **AFTER plan starts: NEVER respond with questions - ONLY use xpask_for_information tool** (ABSOLUTE RULE!)
448
467
  - Pass plain string arrays - must be objects with `title` field
@@ -473,7 +492,7 @@ def _configure_deep_planning_guidance(args: Dict[str, Any], agent: Agent, task:
473
492
  → Plan now started, enforcement enabled (if enforce=true)
474
493
 
475
494
  4. Call: xpget_agent_plan
476
- → See: Task 1 (ID: abc-123) - Design user schema - Not complete
495
+ → See: Task 1 (ID: 35f56b8e-1427-4a5e-a1c0-57a4f7ec8e92) - Design user schema - Not complete
477
496
 
478
497
  5. [Realize need user input] Call: xpask_for_information
479
498
  question: "Which database should we use - PostgreSQL or MySQL?"
@@ -481,20 +500,26 @@ def _configure_deep_planning_guidance(args: Dict[str, Any], agent: Agent, task:
481
500
 
482
501
  6. [After user responds, DO THE WORK: Design schema]
483
502
 
484
- 7. ⚠️ IMMEDIATELY Call: xpcomplete_agent_plan_item
485
- id: "abc-123"
486
- → MARKED COMPLETE RIGHT AFTER FINISHING - NOT DELAYED!
503
+ 7. ⚠️ IMMEDIATELY Call: xpcomplete_agent_plan_items
504
+ ids: ["35f56b8e-1427-4a5e-a1c0-57a4f7ec8e92"]
505
+ → MARKED COMPLETE RIGHT AFTER FINISHING - NOT DELAYED! Used FULL UUID from plan!
487
506
 
488
507
  8. Call: xpget_agent_plan
489
- → See: Task 1 ✓ complete, Task 2 (ID: def-456) - Create database migration - Not complete
508
+ → See: Task 1 ✓ complete, Task 2 (ID: 8a3c4f12-9b7e-4d2a-b5c8-1f6e9a0d3b4c) - Create database migration - Not complete
490
509
 
491
510
  9. [DO THE WORK: Create migration file]
492
511
 
493
- 10. ⚠️ IMMEDIATELY Call: xpcomplete_agent_plan_item
494
- id: "def-456"
495
- → MARKED COMPLETE RIGHT AWAY!
512
+ 10. ⚠️ IMMEDIATELY Call: xpcomplete_agent_plan_items
513
+ ids: ["8a3c4f12-9b7e-4d2a-b5c8-1f6e9a0d3b4c"]
514
+ → MARKED COMPLETE RIGHT AWAY! Used FULL UUID from plan!
515
+
516
+ // Alternative: If tasks 3 and 4 are done together, can batch complete:
517
+ 11a. [DO THE WORK: Implement endpoints AND add auth together]
518
+ 11b. ⚠️ IMMEDIATELY Call: xpcomplete_agent_plan_items
519
+ ids: ["f2b9d1c7-3e8a-4b6f-9d2c-5a7e1f4b8c3d", "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"]
520
+ → Both marked complete at once! Used FULL UUIDs from plan!
496
521
 
497
- 11. [Continue this pattern: GET PLAN → DO WORK → MARK COMPLETE IMMEDIATELY → REPEAT]
522
+ 12. [Continue this pattern: GET PLAN → DO WORK → MARK COMPLETE IMMEDIATELY → REPEAT]
498
523
  ```
499
524
 
500
525
  ### **WRONG WAY - ANTI-PATTERN (DO NOT DO THIS)**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xpander-sdk
3
- Version: 2.0.171
3
+ Version: 2.0.173
4
4
  Summary: xpander.ai Backend-as-a-service for AI Agents - SDK
5
5
  Home-page: https://www.xpander.ai
6
6
  Author: xpanderAI
File without changes
File without changes
File without changes