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.
@@ -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