minions-tasks 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.
- minions_tasks-0.2.0/.gitignore +21 -0
- minions_tasks-0.2.0/PKG-INFO +36 -0
- minions_tasks-0.2.0/README.md +21 -0
- minions_tasks-0.2.0/minions_tasks/__init__.py +24 -0
- minions_tasks-0.2.0/minions_tasks/schemas.py +165 -0
- minions_tasks-0.2.0/pyproject.toml +34 -0
- minions_tasks-0.2.0/tests/test_basic.py +20 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
node_modules/
|
|
2
|
+
dist/
|
|
3
|
+
.turbo/
|
|
4
|
+
*.tsbuildinfo
|
|
5
|
+
__pycache__/
|
|
6
|
+
*.pyc
|
|
7
|
+
.venv/
|
|
8
|
+
*.egg-info/
|
|
9
|
+
dist/
|
|
10
|
+
build/
|
|
11
|
+
.astro/
|
|
12
|
+
.env
|
|
13
|
+
.env.local
|
|
14
|
+
coverage/
|
|
15
|
+
.pytest_cache/
|
|
16
|
+
PROMPT.md
|
|
17
|
+
PROMPTS.md
|
|
18
|
+
|
|
19
|
+
# Local Netlify folder
|
|
20
|
+
.netlify
|
|
21
|
+
.claude
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: minions-tasks
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Task and work management across agents, humans, and workflows
|
|
5
|
+
Project-URL: Homepage, https://github.com/mxn2020/minions-tasks
|
|
6
|
+
Project-URL: Repository, https://github.com/mxn2020/minions-tasks
|
|
7
|
+
Author-email: Mehdi Nabhani <mehdi@the-mehdi.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: ai,minions,tasks
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
|
+
Requires-Dist: minions-sdk>=0.2.1
|
|
12
|
+
Provides-Extra: test
|
|
13
|
+
Requires-Dist: pytest>=7.0; extra == 'test'
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
|
|
16
|
+
# minions-tasks
|
|
17
|
+
|
|
18
|
+
Task and work management across agents, humans, and workflows
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install minions-tasks
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
from minions_tasks import create_client
|
|
30
|
+
|
|
31
|
+
client = create_client()
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## License
|
|
35
|
+
|
|
36
|
+
[MIT](../../LICENSE)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# minions-tasks
|
|
2
|
+
|
|
3
|
+
Task and work management across agents, humans, and workflows
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install minions-tasks
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from minions_tasks import create_client
|
|
15
|
+
|
|
16
|
+
client = create_client()
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## License
|
|
20
|
+
|
|
21
|
+
[MIT](../../LICENSE)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Minions Tasks Python SDK
|
|
3
|
+
|
|
4
|
+
Task and work management across agents, humans, and workflows
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
__version__ = "0.1.0"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def create_client(**kwargs):
|
|
11
|
+
"""Create a client for Minions Tasks.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
**kwargs: Configuration options.
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
dict: Client configuration.
|
|
18
|
+
"""
|
|
19
|
+
return {
|
|
20
|
+
"version": __version__,
|
|
21
|
+
**kwargs,
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
from .schemas import *
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Minions Tasks SDK — Type Schemas
|
|
3
|
+
Custom MinionType schemas for Minions Tasks.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from minions.types import FieldDefinition, FieldValidation, MinionType
|
|
7
|
+
|
|
8
|
+
task_type = MinionType(
|
|
9
|
+
id="tasks-task",
|
|
10
|
+
name="Task",
|
|
11
|
+
slug="task",
|
|
12
|
+
description="A unit of work to be done, assignable to a human or agent.",
|
|
13
|
+
icon="✅",
|
|
14
|
+
schema=[
|
|
15
|
+
FieldDefinition(name="title", type="string", label="title"),
|
|
16
|
+
FieldDefinition(name="description", type="string", label="description"),
|
|
17
|
+
FieldDefinition(name="status", type="select", label="status"),
|
|
18
|
+
FieldDefinition(name="priority", type="select", label="priority"),
|
|
19
|
+
FieldDefinition(name="assigneeId", type="string", label="assigneeId"),
|
|
20
|
+
FieldDefinition(name="assigneeType", type="select", label="assigneeType"),
|
|
21
|
+
FieldDefinition(name="createdBy", type="string", label="createdBy"),
|
|
22
|
+
FieldDefinition(name="createdAt", type="string", label="createdAt"),
|
|
23
|
+
FieldDefinition(name="dueAt", type="string", label="dueAt"),
|
|
24
|
+
FieldDefinition(name="completedAt", type="string", label="completedAt"),
|
|
25
|
+
FieldDefinition(name="tags", type="string", label="tags"),
|
|
26
|
+
FieldDefinition(name="parentTaskId", type="string", label="parentTaskId"),
|
|
27
|
+
FieldDefinition(name="contextRefType", type="string", label="contextRefType"),
|
|
28
|
+
FieldDefinition(name="contextRefId", type="string", label="contextRefId"),
|
|
29
|
+
],
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
task_list_type = MinionType(
|
|
33
|
+
id="tasks-task-list",
|
|
34
|
+
name="Task list",
|
|
35
|
+
slug="task-list",
|
|
36
|
+
description="An ordered or unordered collection of tasks with a shared purpose.",
|
|
37
|
+
icon="📋",
|
|
38
|
+
schema=[
|
|
39
|
+
FieldDefinition(name="name", type="string", label="name"),
|
|
40
|
+
FieldDefinition(name="description", type="string", label="description"),
|
|
41
|
+
FieldDefinition(name="taskIds", type="string", label="taskIds"),
|
|
42
|
+
FieldDefinition(name="ordered", type="boolean", label="ordered"),
|
|
43
|
+
FieldDefinition(name="ownerId", type="string", label="ownerId"),
|
|
44
|
+
FieldDefinition(name="groupId", type="string", label="groupId"),
|
|
45
|
+
],
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
task_dependency_type = MinionType(
|
|
49
|
+
id="tasks-task-dependency",
|
|
50
|
+
name="Task dependency",
|
|
51
|
+
slug="task-dependency",
|
|
52
|
+
description="A blocking or relational dependency between two tasks.",
|
|
53
|
+
icon="🔗",
|
|
54
|
+
schema=[
|
|
55
|
+
FieldDefinition(name="taskId", type="string", label="taskId"),
|
|
56
|
+
FieldDefinition(name="dependsOnTaskId", type="string", label="dependsOnTaskId"),
|
|
57
|
+
FieldDefinition(name="type", type="select", label="type"),
|
|
58
|
+
],
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
recurring_task_type = MinionType(
|
|
62
|
+
id="tasks-recurring-task",
|
|
63
|
+
name="Recurring task",
|
|
64
|
+
slug="recurring-task",
|
|
65
|
+
description="A task template that spawns new instances on a schedule.",
|
|
66
|
+
icon="🔁",
|
|
67
|
+
schema=[
|
|
68
|
+
FieldDefinition(name="templateTaskId", type="string", label="templateTaskId"),
|
|
69
|
+
FieldDefinition(name="schedule", type="string", label="schedule"),
|
|
70
|
+
FieldDefinition(name="nextRunAt", type="string", label="nextRunAt"),
|
|
71
|
+
FieldDefinition(name="lastRunAt", type="string", label="lastRunAt"),
|
|
72
|
+
FieldDefinition(name="spawnedTaskIds", type="string", label="spawnedTaskIds"),
|
|
73
|
+
FieldDefinition(name="status", type="select", label="status"),
|
|
74
|
+
],
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
task_assignment_type = MinionType(
|
|
78
|
+
id="tasks-task-assignment",
|
|
79
|
+
name="Task assignment",
|
|
80
|
+
slug="task-assignment",
|
|
81
|
+
description="An explicit assignment of a task to a person or agent with a role.",
|
|
82
|
+
icon="👤",
|
|
83
|
+
schema=[
|
|
84
|
+
FieldDefinition(name="taskId", type="string", label="taskId"),
|
|
85
|
+
FieldDefinition(name="assigneeId", type="string", label="assigneeId"),
|
|
86
|
+
FieldDefinition(name="assigneeType", type="select", label="assigneeType"),
|
|
87
|
+
FieldDefinition(name="assignedAt", type="string", label="assignedAt"),
|
|
88
|
+
FieldDefinition(name="assignedBy", type="string", label="assignedBy"),
|
|
89
|
+
FieldDefinition(name="role", type="select", label="role"),
|
|
90
|
+
],
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
task_checkpoint_type = MinionType(
|
|
94
|
+
id="tasks-task-checkpoint",
|
|
95
|
+
name="Task checkpoint",
|
|
96
|
+
slug="task-checkpoint",
|
|
97
|
+
description="A named milestone or progress marker within a task.",
|
|
98
|
+
icon="🚩",
|
|
99
|
+
schema=[
|
|
100
|
+
FieldDefinition(name="taskId", type="string", label="taskId"),
|
|
101
|
+
FieldDefinition(name="label", type="string", label="label"),
|
|
102
|
+
FieldDefinition(name="completedAt", type="string", label="completedAt"),
|
|
103
|
+
FieldDefinition(name="notes", type="string", label="notes"),
|
|
104
|
+
],
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
task_history_entry_type = MinionType(
|
|
108
|
+
id="tasks-task-history-entry",
|
|
109
|
+
name="Task history entry",
|
|
110
|
+
slug="task-history-entry",
|
|
111
|
+
description="An immutable log of a single field change on a task.",
|
|
112
|
+
icon="🕰️",
|
|
113
|
+
schema=[
|
|
114
|
+
FieldDefinition(name="taskId", type="string", label="taskId"),
|
|
115
|
+
FieldDefinition(name="changedAt", type="string", label="changedAt"),
|
|
116
|
+
FieldDefinition(name="changedBy", type="string", label="changedBy"),
|
|
117
|
+
FieldDefinition(name="field", type="string", label="field"),
|
|
118
|
+
FieldDefinition(name="from", type="string", label="from"),
|
|
119
|
+
FieldDefinition(name="to", type="string", label="to"),
|
|
120
|
+
],
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
task_comment_type = MinionType(
|
|
124
|
+
id="tasks-task-comment",
|
|
125
|
+
name="Task comment",
|
|
126
|
+
slug="task-comment",
|
|
127
|
+
description="A comment or note left on a task by a human or agent.",
|
|
128
|
+
icon="💬",
|
|
129
|
+
schema=[
|
|
130
|
+
FieldDefinition(name="taskId", type="string", label="taskId"),
|
|
131
|
+
FieldDefinition(name="authorId", type="string", label="authorId"),
|
|
132
|
+
FieldDefinition(name="authorType", type="select", label="authorType"),
|
|
133
|
+
FieldDefinition(name="body", type="string", label="body"),
|
|
134
|
+
FieldDefinition(name="createdAt", type="string", label="createdAt"),
|
|
135
|
+
FieldDefinition(name="resolvedAt", type="string", label="resolvedAt"),
|
|
136
|
+
],
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
task_outcome_type = MinionType(
|
|
140
|
+
id="tasks-task-outcome",
|
|
141
|
+
name="Task outcome",
|
|
142
|
+
slug="task-outcome",
|
|
143
|
+
description="The recorded result of a completed or failed task, including lessons learned.",
|
|
144
|
+
icon="🎯",
|
|
145
|
+
schema=[
|
|
146
|
+
FieldDefinition(name="taskId", type="string", label="taskId"),
|
|
147
|
+
FieldDefinition(name="result", type="select", label="result"),
|
|
148
|
+
FieldDefinition(name="summary", type="string", label="summary"),
|
|
149
|
+
FieldDefinition(name="artifactIds", type="string", label="artifactIds"),
|
|
150
|
+
FieldDefinition(name="lessons", type="string", label="lessons"),
|
|
151
|
+
],
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
custom_types: list[MinionType] = [
|
|
155
|
+
task_type,
|
|
156
|
+
task_list_type,
|
|
157
|
+
task_dependency_type,
|
|
158
|
+
recurring_task_type,
|
|
159
|
+
task_assignment_type,
|
|
160
|
+
task_checkpoint_type,
|
|
161
|
+
task_history_entry_type,
|
|
162
|
+
task_comment_type,
|
|
163
|
+
task_outcome_type,
|
|
164
|
+
]
|
|
165
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "minions-tasks"
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "Task and work management across agents, humans, and workflows"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = { text = "MIT" }
|
|
11
|
+
requires-python = ">=3.11"
|
|
12
|
+
keywords = ["tasks","ai","minions"]
|
|
13
|
+
authors = [
|
|
14
|
+
{ name = "Mehdi Nabhani", email = "mehdi@the-mehdi.com" }
|
|
15
|
+
]
|
|
16
|
+
dependencies = [
|
|
17
|
+
"minions-sdk>=0.2.1",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[project.optional-dependencies]
|
|
21
|
+
test = ["pytest>=7.0"]
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Homepage = "https://github.com/mxn2020/minions-tasks"
|
|
25
|
+
Repository = "https://github.com/mxn2020/minions-tasks"
|
|
26
|
+
|
|
27
|
+
[tool.hatch.build.targets.wheel]
|
|
28
|
+
packages = ["minions_tasks"]
|
|
29
|
+
|
|
30
|
+
[tool.pytest.ini_options]
|
|
31
|
+
testpaths = ["tests"]
|
|
32
|
+
python_files = ["test_*.py"]
|
|
33
|
+
python_classes = ["Test*"]
|
|
34
|
+
python_functions = ["test_*"]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Tests for minions-tasks."""
|
|
2
|
+
|
|
3
|
+
from minions_tasks import create_client, __version__
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_version():
|
|
7
|
+
"""Test that version is set."""
|
|
8
|
+
assert __version__ == "0.1.0"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def test_create_client():
|
|
12
|
+
"""Test client creation."""
|
|
13
|
+
client = create_client()
|
|
14
|
+
assert client["version"] == "0.1.0"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def test_create_client_with_options():
|
|
18
|
+
"""Test client creation with options."""
|
|
19
|
+
client = create_client(debug=True)
|
|
20
|
+
assert client["debug"] is True
|