@haneinfo/assignment 0.6.3 → 0.6.5
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.
- package/README.md +98 -83
- package/agent-guide.md +211 -196
- package/dist/assignment.service.d.ts.map +1 -1
- package/dist/assignment.service.js +17 -4
- package/dist/assignment.service.js.map +1 -1
- package/dist/prisma-store.d.ts.map +1 -1
- package/dist/prisma-store.js +4 -0
- package/dist/prisma-store.js.map +1 -1
- package/dist/store.d.ts +1 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +4 -0
- package/dist/store.js.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,83 +1,98 @@
|
|
|
1
|
-
# @haneinfo/assignment
|
|
2
|
-
|
|
3
|
-
See [agent-guide.md](agent-guide.md) for integration details.
|
|
4
|
-
|
|
5
|
-
## Instance readers and stored query values
|
|
6
|
-
|
|
7
|
-
Every task creation (including initial-state entry, later rounds and self-entry) grants its
|
|
8
|
-
assignee permanent read access to that instance in the same transaction. Assignment injects the
|
|
9
|
-
state-machine-owned `StateMachineReaderGrants` service instead of writing another package's table.
|
|
10
|
-
It requires state-machine 0.6 or later and the App's reader-table migration/backfill. OPEN,
|
|
11
|
-
RESPONDED, CLOSED and CANCELLED tasks all retain their reader grants; there is no revoke operation.
|
|
12
|
-
The grant is instance-specific and covers comments, following, lists and exports.
|
|
13
|
-
|
|
14
|
-
After creating the reader table, Apps must backfill every existing task, regardless of status:
|
|
15
|
-
|
|
16
|
-
```sql
|
|
17
|
-
INSERT INTO state_machine_instance_readers (instance_id, user_id, reason)
|
|
18
|
-
SELECT DISTINCT instance_id, assignee_id, 'ASSIGNED'
|
|
19
|
-
FROM assignment_tasks
|
|
20
|
-
ON CONFLICT (instance_id, user_id) DO NOTHING;
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Date comparisons
|
|
24
|
-
|
|
25
|
-
GT/GTE/LT/LTE compare numbers, valid calendar dates (YYYY-MM-DD), or timezone-qualified datetimes
|
|
26
|
-
(YYYY-MM-DDTHH:mm:ss with optional fractional seconds and Z or +/-HH:mm). Both operands must have
|
|
27
|
-
the same category. Dates use calendar order; datetimes compare UTC instants at millisecond precision.
|
|
28
|
-
Invalid dates, mixed categories and empty operands yield false. EQ/NEQ/IN retain strict scalar equality;
|
|
29
|
-
matching instants with different textual offsets are still unequal for those operators.
|
|
30
|
-
|
|
31
|
-
## Instance privacy boundary
|
|
32
|
-
|
|
33
|
-
Task reads and responses first check task ownership and return identical TASK_NOT_FOUND/404 for another person's or a missing task. Every assignee receives a permanent state-machine reader grant on task creation, so the internal runtime snapshot read is restricted to an already authorized reader. `tasksOf` is a trusted internal API, not an HTTP/MCP instance lookup. USER transitions outside task responses apply state-machine's read-before-write checks; Assignment triggers keep their existing authorization.
|
|
34
|
-
|
|
35
|
-
## Period delegation (draft implementation)
|
|
36
|
-
|
|
37
|
-
With the optional delegation resolver, original tasks remain and delegates receive separate tasks
|
|
38
|
-
with nullable onBehalfOfId and delegationId. Proxy titles start with [Delegate]. Task creation grants
|
|
39
|
-
permanent instance readership in the same transaction. No resolver means the existing behavior.
|
|
40
|
-
Migrate the two nullable assignment_tasks columns before deploying; no backfill of those columns is
|
|
41
|
-
needed for older tasks. Upgrade state-machine for optional actingUserId/onBehalfOfId history output.
|
|
42
|
-
|
|
43
|
-
ANY_ONE/SINGLE completes on the first original or delegated response. JOINT counts one vote per
|
|
44
|
-
original assignee; the first response closes that vote's other tasks and does not add votes. A
|
|
45
|
-
proxy never expands into another proxy. A delegate already present in the round is not duplicated;
|
|
46
|
-
when several originals share a delegate, deterministic delegation-id order picks one represented
|
|
47
|
-
original. Other originals keep their own required votes.
|
|
48
|
-
|
|
49
|
-
Delegation registers internal effects for immediate, idempotent backfill of original OPEN tasks and
|
|
50
|
-
transactional revocation cancellation. Future periods do not backfill tasks open before the start.
|
|
51
|
-
Expired OPEN proxy tasks are hidden in GET /assignments/mine and list_my_assignments; a response
|
|
52
|
-
commits CANCELLED and then raises DELEGATION_ENDED/409. Revocation cancels OPEN proxies in its own
|
|
53
|
-
transaction. Permanent readers survive both. GET /assignments/:id returns no response choices for
|
|
54
|
-
an expired OPEN proxy. Task ownership still hides other people's tasks as TASK_NOT_FOUND/404.
|
|
55
|
-
|
|
56
|
-
Task reads add optional onBehalfOfId and onBehalfOfName. Names use one authorized-page batch through
|
|
57
|
-
identity-store.findActiveNamesByIds; missing/inactive/older providers yield null. MCP names are
|
|
58
|
-
$userContent. A successful proxy response records actual actingUserId, and notifies the original
|
|
59
|
-
with assignment-response:<taskId>. Appointment notifications belong to delegation; task notification
|
|
60
|
-
keys remain assignment:<taskId>. Missing inbox capability skips notifications as before.
|
|
61
|
-
|
|
62
|
-
See @haneinfo/delegation's agent guide for period rules, human management and read-only MCP. There
|
|
63
|
-
is no MCP response, creation, revocation, per-task reassignment or delegation frontend.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
## Instance access lists (draft implementation)
|
|
67
|
-
|
|
68
|
-
Implemented against draft decision 202610-c8e3; the decision remains draft.
|
|
69
|
-
|
|
70
|
-
Assignment calls StateMachineReaderGrants.grantAssigned(instanceId, userIds, tx, source?) in the
|
|
71
|
-
same task transaction. The optional source defaults to ASSIGNED; notifyTasks groups original and
|
|
72
|
-
one-hop delegate tasks and passes DELEGATED for delegates. The original call shape is compatible.
|
|
73
|
-
Both sources are permanent READ; task completion/cancellation and delegation expiry/revocation
|
|
74
|
-
never remove them. Manual GRANTED READ/WRITE entries coexist under a source-specific key.
|
|
75
|
-
Task ownership and ASSIGNMENT transition authorization remain unchanged.
|
|
76
|
-
|
|
77
|
-
Upgrade the affected mechanisms together after applying the App migration. The maintained model,
|
|
78
|
-
HTTP routes, read-only list_instance_access MCP tool, errors and permission contract are documented
|
|
79
|
-
in @haneinfo/state-machine/agent-guide.md. Its prisma/instance-access.sql migrates the existing reader
|
|
80
|
-
table to USER/ROLE, READ/WRITE and ASSIGNED/DELEGATED/GRANTED rows while retaining timestamps.
|
|
81
|
-
The maintainer selected (instanceId, principalType, principalId, source) uniqueness. Manual grants are
|
|
82
|
-
limited to 100 by default; permanent READ entries survive manual removal. See the package repository
|
|
83
|
-
validation/equipment-loan/instance-access/report.md for SQL, tests and App restoration evidence.
|
|
1
|
+
# @haneinfo/assignment
|
|
2
|
+
|
|
3
|
+
See [agent-guide.md](agent-guide.md) for integration details.
|
|
4
|
+
|
|
5
|
+
## Instance readers and stored query values
|
|
6
|
+
|
|
7
|
+
Every task creation (including initial-state entry, later rounds and self-entry) grants its
|
|
8
|
+
assignee permanent read access to that instance in the same transaction. Assignment injects the
|
|
9
|
+
state-machine-owned `StateMachineReaderGrants` service instead of writing another package's table.
|
|
10
|
+
It requires state-machine 0.6 or later and the App's reader-table migration/backfill. OPEN,
|
|
11
|
+
RESPONDED, CLOSED and CANCELLED tasks all retain their reader grants; there is no revoke operation.
|
|
12
|
+
The grant is instance-specific and covers comments, following, lists and exports.
|
|
13
|
+
|
|
14
|
+
After creating the reader table, Apps must backfill every existing task, regardless of status:
|
|
15
|
+
|
|
16
|
+
```sql
|
|
17
|
+
INSERT INTO state_machine_instance_readers (instance_id, user_id, reason)
|
|
18
|
+
SELECT DISTINCT instance_id, assignee_id, 'ASSIGNED'
|
|
19
|
+
FROM assignment_tasks
|
|
20
|
+
ON CONFLICT (instance_id, user_id) DO NOTHING;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Date comparisons
|
|
24
|
+
|
|
25
|
+
GT/GTE/LT/LTE compare numbers, valid calendar dates (YYYY-MM-DD), or timezone-qualified datetimes
|
|
26
|
+
(YYYY-MM-DDTHH:mm:ss with optional fractional seconds and Z or +/-HH:mm). Both operands must have
|
|
27
|
+
the same category. Dates use calendar order; datetimes compare UTC instants at millisecond precision.
|
|
28
|
+
Invalid dates, mixed categories and empty operands yield false. EQ/NEQ/IN retain strict scalar equality;
|
|
29
|
+
matching instants with different textual offsets are still unequal for those operators.
|
|
30
|
+
|
|
31
|
+
## Instance privacy boundary
|
|
32
|
+
|
|
33
|
+
Task reads and responses first check task ownership and return identical TASK_NOT_FOUND/404 for another person's or a missing task. Every assignee receives a permanent state-machine reader grant on task creation, so the internal runtime snapshot read is restricted to an already authorized reader. `tasksOf` is a trusted internal API, not an HTTP/MCP instance lookup. USER transitions outside task responses apply state-machine's read-before-write checks; Assignment triggers keep their existing authorization.
|
|
34
|
+
|
|
35
|
+
## Period delegation (draft implementation)
|
|
36
|
+
|
|
37
|
+
With the optional delegation resolver, original tasks remain and delegates receive separate tasks
|
|
38
|
+
with nullable onBehalfOfId and delegationId. Proxy titles start with [Delegate]. Task creation grants
|
|
39
|
+
permanent instance readership in the same transaction. No resolver means the existing behavior.
|
|
40
|
+
Migrate the two nullable assignment_tasks columns before deploying; no backfill of those columns is
|
|
41
|
+
needed for older tasks. Upgrade state-machine for optional actingUserId/onBehalfOfId history output.
|
|
42
|
+
|
|
43
|
+
ANY_ONE/SINGLE completes on the first original or delegated response. JOINT counts one vote per
|
|
44
|
+
original assignee; the first response closes that vote's other tasks and does not add votes. A
|
|
45
|
+
proxy never expands into another proxy. A delegate already present in the round is not duplicated;
|
|
46
|
+
when several originals share a delegate, deterministic delegation-id order picks one represented
|
|
47
|
+
original. Other originals keep their own required votes.
|
|
48
|
+
|
|
49
|
+
Delegation registers internal effects for immediate, idempotent backfill of original OPEN tasks and
|
|
50
|
+
transactional revocation cancellation. Future periods do not backfill tasks open before the start.
|
|
51
|
+
Expired OPEN proxy tasks are hidden in GET /assignments/mine and list_my_assignments; a response
|
|
52
|
+
commits CANCELLED and then raises DELEGATION_ENDED/409. Revocation cancels OPEN proxies in its own
|
|
53
|
+
transaction. Permanent readers survive both. GET /assignments/:id returns no response choices for
|
|
54
|
+
an expired OPEN proxy. Task ownership still hides other people's tasks as TASK_NOT_FOUND/404.
|
|
55
|
+
|
|
56
|
+
Task reads add optional onBehalfOfId and onBehalfOfName. Names use one authorized-page batch through
|
|
57
|
+
identity-store.findActiveNamesByIds; missing/inactive/older providers yield null. MCP names are
|
|
58
|
+
$userContent. A successful proxy response records actual actingUserId, and notifies the original
|
|
59
|
+
with assignment-response:<taskId>. Appointment notifications belong to delegation; task notification
|
|
60
|
+
keys remain assignment:<taskId>. Missing inbox capability skips notifications as before.
|
|
61
|
+
|
|
62
|
+
See @haneinfo/delegation's agent guide for period rules, human management and read-only MCP. There
|
|
63
|
+
is no MCP response, creation, revocation, per-task reassignment or delegation frontend.
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## Instance access lists (draft implementation)
|
|
67
|
+
|
|
68
|
+
Implemented against draft decision 202610-c8e3; the decision remains draft.
|
|
69
|
+
|
|
70
|
+
Assignment calls StateMachineReaderGrants.grantAssigned(instanceId, userIds, tx, source?) in the
|
|
71
|
+
same task transaction. The optional source defaults to ASSIGNED; notifyTasks groups original and
|
|
72
|
+
one-hop delegate tasks and passes DELEGATED for delegates. The original call shape is compatible.
|
|
73
|
+
Both sources are permanent READ; task completion/cancellation and delegation expiry/revocation
|
|
74
|
+
never remove them. Manual GRANTED READ/WRITE entries coexist under a source-specific key.
|
|
75
|
+
Task ownership and ASSIGNMENT transition authorization remain unchanged.
|
|
76
|
+
|
|
77
|
+
Upgrade the affected mechanisms together after applying the App migration. The maintained model,
|
|
78
|
+
HTTP routes, read-only list_instance_access MCP tool, errors and permission contract are documented
|
|
79
|
+
in @haneinfo/state-machine/agent-guide.md. Its prisma/instance-access.sql migrates the existing reader
|
|
80
|
+
table to USER/ROLE, READ/WRITE and ASSIGNED/DELEGATED/GRANTED rows while retaining timestamps.
|
|
81
|
+
The maintainer selected (instanceId, principalType, principalId, source) uniqueness. Manual grants are
|
|
82
|
+
limited to 100 by default; permanent READ entries survive manual removal. See the package repository
|
|
83
|
+
validation/equipment-loan/instance-access/report.md for SQL, tests and App restoration evidence.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## Instance lifecycle (draft 202610-f1a8)
|
|
87
|
+
|
|
88
|
+
Implemented from draft decision 202610-f1a8; the decision remains draft. Upgrade state-machine,
|
|
89
|
+
list-view, collaboration, attachments, import-export, assignment and timer together. No frontend,
|
|
90
|
+
automatic archive or bulk lifecycle operations are included. Permanently purged data cannot be
|
|
91
|
+
restored by this API: database and private file backups must cover the entire deletion retention
|
|
92
|
+
period and be restored consistently.
|
|
93
|
+
|
|
94
|
+
Task reads/responses require a live runtime instance; deleted instances return INSTANCE_NOT_FOUND
|
|
95
|
+
and are omitted from personal task lists. Delegation backfill skips deleted instances. On the
|
|
96
|
+
transaction-bound state-machine.instance.purging event, built-in stores remove instance tasks and
|
|
97
|
+
bindings using that same transaction. They are plain instance ids without cross-package foreign
|
|
98
|
+
keys. Custom stores can implement purgeInstance for equivalent cleanup. No notifications are sent.
|
package/agent-guide.md
CHANGED
|
@@ -1,196 +1,211 @@
|
|
|
1
|
-
# @haneinfo/assignment — Agent Guide
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
|
|
5
|
-
The assignment mechanism (decision `202610-00b3`, first batch; details in its own decision). An
|
|
6
|
-
`Assignment` definition says: when an instance of a StateMachine **enters a state**, these people
|
|
7
|
-
get a task, and their **response takes a transition**. It covers approvals, read-and-acknowledge
|
|
8
|
-
steps and task hand-offs.
|
|
9
|
-
|
|
10
|
-
```json
|
|
11
|
-
{
|
|
12
|
-
"kind": "Assignment",
|
|
13
|
-
"schemaVersion": 1,
|
|
14
|
-
"metadata": { "code": "equipment-manager-approval", "name": "Approve equipment loan" },
|
|
15
|
-
"spec": {
|
|
16
|
-
"stateMachine": { "kind": "StateMachine", "code": "equipment-loan-flow" },
|
|
17
|
-
"onEnter": "SUBMITTED",
|
|
18
|
-
"assignees": [{ "type": "ROLE", "role": "EQUIPMENT_MANAGER" }],
|
|
19
|
-
"policy": "ANY_ONE",
|
|
20
|
-
"responses": [
|
|
21
|
-
{ "key": "approve", "label": "Approve", "transition": "approve" },
|
|
22
|
-
{ "key": "reject", "label": "Reject", "transition": "reject" }
|
|
23
|
-
],
|
|
24
|
-
"dueIn": "P2D"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## When to use it, and when not
|
|
30
|
-
|
|
31
|
-
Use it whenever a person must act before a business object moves on. Do not use it for plain
|
|
32
|
-
notifications (that is a Timer `NOTIFY` action or the notification inbox) or for decisions a rule
|
|
33
|
-
could make (use a CHOICE state).
|
|
34
|
-
|
|
35
|
-
## Kind and example definition
|
|
36
|
-
|
|
37
|
-
- `stateMachine`, `onEnter`: the machine and the state that opens the tasks. Not a FINAL or CHOICE state.
|
|
38
|
-
- `assignees`: person resolvers — `SPECIFIC_USER` (`userIds`), `ROLE` (role machine name, resolved
|
|
39
|
-
through RBAC), `FORM_FIELD_USER` (a `user_select` field of the machine's subject Form, by id),
|
|
40
|
-
`SUBMITTER`, `DIRECT_SUPERVISOR`, `DEPARTMENT_HEAD`, `DIVISION_HEAD` (the last three require org-directory). Resolving to nobody makes the transition into `onEnter` fail with
|
|
41
|
-
`ASSIGNEE_UNRESOLVED` — fix the role membership or the field.
|
|
42
|
-
- `policy`: `ANY_ONE` (first response decides; use it for roles), `SINGLE` (same, but you expect
|
|
43
|
-
exactly one person — a warning if the resolvers can produce several), `JOINT` (everybody must give
|
|
44
|
-
the one non-`decisive` response; one `decisive` response — e.g. reject — decides at once).
|
|
45
|
-
- `responses[]`: `key`, `label`, `transition` (must leave `onEnter`), `decisive` (JOINT only).
|
|
46
|
-
- `dueIn`: ISO 8601 duration (`P2D`, `PT4H`); it only sets the task's due time. What happens when
|
|
47
|
-
it passes is a Timer with an `ASSIGNMENT_DUE` anchor.
|
|
48
|
-
- `title`: shown to the assignees; defaults to `metadata.name`.
|
|
49
|
-
- Permissions: `assignment:definition:read|write|publish`.
|
|
50
|
-
|
|
51
|
-
Instances pin the published assignments of their machine when they start; re-entering the state
|
|
52
|
-
opens a new round. Leaving the state any other way (a Timer, a person) cancels open tasks.
|
|
53
|
-
|
|
54
|
-
Self-transitions also cancel the old round before opening the next. A deciding response leaves
|
|
55
|
-
the responding task `RESPONDED` and other open tasks `CLOSED`; an external state change uses
|
|
56
|
-
`CANCELLED`. PostgreSQL responses lock the instance before reading/writing the round, so concurrent
|
|
57
|
-
JOINT votes see committed earlier votes. Round evaluation reads every task, without a 500-row cap.
|
|
58
|
-
|
|
59
|
-
Example: `examples/definitions/equipment-loan/equipment-manager-approval.assignment.json`.
|
|
60
|
-
|
|
61
|
-
## MCP tools
|
|
62
|
-
|
|
63
|
-
| Tool | Scope | Use |
|
|
64
|
-
| --- | --- | --- |
|
|
65
|
-
| `list_my_assignments` | `<namespace>:assignment:read` (read only) | Tasks of the person the connection acts for, with responses and instance data (as `$userContent`) |
|
|
66
|
-
|
|
67
|
-
There is no tool to respond: a response takes a transition (approve, reject) and stays a human
|
|
68
|
-
step in the App. Register from the App: `assignmentMcpTools.registerInto(registry, { scopeNamespace })`.
|
|
69
|
-
|
|
70
|
-
The scope is required at listing and invocation by the MCP host. No definition-read permission is
|
|
71
|
-
required to see your own tasks: the acting user must own them. The client cannot select another
|
|
72
|
-
user. Invalid status input returns `INVALID_INPUT`; a credential without an acting user is refused.
|
|
73
|
-
|
|
74
|
-
## HTTP API (people)
|
|
75
|
-
|
|
76
|
-
| Route | Purpose |
|
|
77
|
-
| --- | --- |
|
|
78
|
-
| `GET /assignments/mine?status=OPEN` | Your tasks |
|
|
79
|
-
| `GET /assignments/:id` | One of your tasks with the instance |
|
|
80
|
-
| `POST /assignments/:id/respond` `{ response, comment? }` | Respond; may take the transition |
|
|
81
|
-
|
|
82
|
-
## Events
|
|
83
|
-
|
|
84
|
-
`assignment.opened` (`assignmentCode`, `round`, `dueAt`, `assigneeIds`) and `assignment.closed`
|
|
85
|
-
(`assignmentCode`, `round`, `outcome`: the response key or `CANCELLED`), on the state-machine
|
|
86
|
-
runtime's event channel. Timer uses them for `ASSIGNMENT_DUE`.
|
|
87
|
-
|
|
88
|
-
## Adapters
|
|
89
|
-
|
|
90
|
-
None. Roles resolve through `haneinfo.rbac-policy` (`userIdsWithRole`); assignees are notified through
|
|
91
|
-
`haneinfo.notification-inbox` when it is installed.
|
|
92
|
-
|
|
93
|
-
## Common error codes and fixes
|
|
94
|
-
|
|
95
|
-
| Code | Fix |
|
|
96
|
-
| --- | --- |
|
|
97
|
-
| `UNKNOWN_STATE` / `ASSIGNMENT_ON_FINAL_STATE` | `onEnter` must be a non-FINAL state of the machine |
|
|
98
|
-
| `UNKNOWN_TRANSITION` / `TRANSITION_NOT_FROM_STATE` | A response's transition must leave `onEnter` |
|
|
99
|
-
| `JOINT_NEEDS_ONE_AGREEMENT` | Mark all but one JOINT response as `decisive` |
|
|
100
|
-
| `SINGLE_MAY_RESOLVE_MANY` (warning) | Use `ANY_ONE` for roles |
|
|
101
|
-
| `NOT_A_USER_FIELD` / `NO_SUBJECT_FORM` | `FORM_FIELD_USER` needs a `user_select` field of the subject Form |
|
|
102
|
-
| `INVALID_DURATION` | `dueIn` is a positive duration without months or years |
|
|
103
|
-
| `ASSIGNEE_UNRESOLVED` (runtime) | The resolvers produced nobody; see `details.unresolved` |
|
|
104
|
-
| `TASK_NOT_OPEN` (runtime) | Someone else already decided, or the instance moved on |
|
|
105
|
-
|
|
106
|
-
## Conditional activation
|
|
107
|
-
|
|
108
|
-
Optional spec.when uses the shared Form evaluateCondition function and PREDICATE/GROUP syntax,
|
|
109
|
-
including CONTEXT SUBMITTER_ID. False skips this assignment with no tasks or notifications and does
|
|
110
|
-
not block other transitions, even when every assignment is skipped. Empty inputs are errors.
|
|
111
|
-
|
|
112
|
-
The prepareStateEntry listener fixes when and assignee results before entry writes. Each matching
|
|
113
|
-
assignment resolves its people once and uses that exact result to open tasks. Any unresolved resolver
|
|
114
|
-
blocks entry, including partially resolved lists; details.unresolved preserves organization reasons
|
|
115
|
-
and unit information. A CHOICE stays in CHOICE and records/notifies the failure; other transitions
|
|
116
|
-
roll back to their original state and report the failure. Existing tasks keep their assignees.
|
|
117
|
-
|
|
118
|
-
## Instance readers and stored query values
|
|
119
|
-
|
|
120
|
-
Every task creation (including initial-state entry, later rounds and self-entry) grants its
|
|
121
|
-
assignee permanent read access to that instance in the same transaction. Assignment injects the
|
|
122
|
-
state-machine-owned `StateMachineReaderGrants` service instead of writing another package's table.
|
|
123
|
-
It requires state-machine 0.6 or later and the App's reader-table migration/backfill. OPEN,
|
|
124
|
-
RESPONDED, CLOSED and CANCELLED tasks all retain their reader grants; there is no revoke operation.
|
|
125
|
-
The grant is instance-specific and covers comments, following, lists and exports.
|
|
126
|
-
|
|
127
|
-
After creating the reader table, Apps must backfill every existing task, regardless of status:
|
|
128
|
-
|
|
129
|
-
```sql
|
|
130
|
-
INSERT INTO state_machine_instance_readers (instance_id, user_id, reason)
|
|
131
|
-
SELECT DISTINCT instance_id, assignee_id, 'ASSIGNED'
|
|
132
|
-
FROM assignment_tasks
|
|
133
|
-
ON CONFLICT (instance_id, user_id) DO NOTHING;
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Date comparisons
|
|
137
|
-
|
|
138
|
-
GT/GTE/LT/LTE compare numbers, valid calendar dates (YYYY-MM-DD), or timezone-qualified datetimes
|
|
139
|
-
(YYYY-MM-DDTHH:mm:ss with optional fractional seconds and Z or +/-HH:mm). Both operands must have
|
|
140
|
-
the same category. Dates use calendar order; datetimes compare UTC instants at millisecond precision.
|
|
141
|
-
Invalid dates, mixed categories and empty operands yield false. EQ/NEQ/IN retain strict scalar equality;
|
|
142
|
-
matching instants with different textual offsets are still unequal for those operators.
|
|
143
|
-
|
|
144
|
-
## Instance privacy boundary
|
|
145
|
-
|
|
146
|
-
Task reads and responses first check task ownership and return identical TASK_NOT_FOUND/404 for another person's or a missing task. Every assignee receives a permanent state-machine reader grant on task creation, so the internal runtime snapshot read is restricted to an already authorized reader. `tasksOf` is a trusted internal API, not an HTTP/MCP instance lookup. USER transitions outside task responses apply state-machine's read-before-write checks; Assignment triggers keep their existing authorization.
|
|
147
|
-
|
|
148
|
-
## Period delegation (draft implementation)
|
|
149
|
-
|
|
150
|
-
With the optional delegation resolver, original tasks remain and delegates receive separate tasks
|
|
151
|
-
with nullable onBehalfOfId and delegationId. Proxy titles start with [Delegate]. Task creation grants
|
|
152
|
-
permanent instance readership in the same transaction. No resolver means the existing behavior.
|
|
153
|
-
Migrate the two nullable assignment_tasks columns before deploying; no backfill of those columns is
|
|
154
|
-
needed for older tasks. Upgrade state-machine for optional actingUserId/onBehalfOfId history output.
|
|
155
|
-
|
|
156
|
-
ANY_ONE/SINGLE completes on the first original or delegated response. JOINT counts one vote per
|
|
157
|
-
original assignee; the first response closes that vote's other tasks and does not add votes. A
|
|
158
|
-
proxy never expands into another proxy. A delegate already present in the round is not duplicated;
|
|
159
|
-
when several originals share a delegate, deterministic delegation-id order picks one represented
|
|
160
|
-
original. Other originals keep their own required votes.
|
|
161
|
-
|
|
162
|
-
Delegation registers internal effects for immediate, idempotent backfill of original OPEN tasks and
|
|
163
|
-
transactional revocation cancellation. Future periods do not backfill tasks open before the start.
|
|
164
|
-
Expired OPEN proxy tasks are hidden in GET /assignments/mine and list_my_assignments; a response
|
|
165
|
-
commits CANCELLED and then raises DELEGATION_ENDED/409. Revocation cancels OPEN proxies in its own
|
|
166
|
-
transaction. Permanent readers survive both. GET /assignments/:id returns no response choices for
|
|
167
|
-
an expired OPEN proxy. Task ownership still hides other people's tasks as TASK_NOT_FOUND/404.
|
|
168
|
-
|
|
169
|
-
Task reads add optional onBehalfOfId and onBehalfOfName. Names use one authorized-page batch through
|
|
170
|
-
identity-store.findActiveNamesByIds; missing/inactive/older providers yield null. MCP names are
|
|
171
|
-
$userContent. A successful proxy response records actual actingUserId, and notifies the original
|
|
172
|
-
with assignment-response:<taskId>. Appointment notifications belong to delegation; task notification
|
|
173
|
-
keys remain assignment:<taskId>. Missing inbox capability skips notifications as before.
|
|
174
|
-
|
|
175
|
-
See @haneinfo/delegation's agent guide for period rules, human management and read-only MCP. There
|
|
176
|
-
is no MCP response, creation, revocation, per-task reassignment or delegation frontend.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
## Instance access lists (draft implementation)
|
|
180
|
-
|
|
181
|
-
Implemented against draft decision 202610-c8e3; the decision remains draft.
|
|
182
|
-
|
|
183
|
-
Assignment calls StateMachineReaderGrants.grantAssigned(instanceId, userIds, tx, source?) in the
|
|
184
|
-
same task transaction. The optional source defaults to ASSIGNED; notifyTasks groups original and
|
|
185
|
-
one-hop delegate tasks and passes DELEGATED for delegates. The original call shape is compatible.
|
|
186
|
-
Both sources are permanent READ; task completion/cancellation and delegation expiry/revocation
|
|
187
|
-
never remove them. Manual GRANTED READ/WRITE entries coexist under a source-specific key.
|
|
188
|
-
Task ownership and ASSIGNMENT transition authorization remain unchanged.
|
|
189
|
-
|
|
190
|
-
Upgrade the affected mechanisms together after applying the App migration. The maintained model,
|
|
191
|
-
HTTP routes, read-only list_instance_access MCP tool, errors and permission contract are documented
|
|
192
|
-
in @haneinfo/state-machine/agent-guide.md. Its prisma/instance-access.sql migrates the existing reader
|
|
193
|
-
table to USER/ROLE, READ/WRITE and ASSIGNED/DELEGATED/GRANTED rows while retaining timestamps.
|
|
194
|
-
The maintainer selected (instanceId, principalType, principalId, source) uniqueness. Manual grants are
|
|
195
|
-
limited to 100 by default; permanent READ entries survive manual removal. See the package repository
|
|
196
|
-
validation/equipment-loan/instance-access/report.md for SQL, tests and App restoration evidence.
|
|
1
|
+
# @haneinfo/assignment — Agent Guide
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
The assignment mechanism (decision `202610-00b3`, first batch; details in its own decision). An
|
|
6
|
+
`Assignment` definition says: when an instance of a StateMachine **enters a state**, these people
|
|
7
|
+
get a task, and their **response takes a transition**. It covers approvals, read-and-acknowledge
|
|
8
|
+
steps and task hand-offs.
|
|
9
|
+
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"kind": "Assignment",
|
|
13
|
+
"schemaVersion": 1,
|
|
14
|
+
"metadata": { "code": "equipment-manager-approval", "name": "Approve equipment loan" },
|
|
15
|
+
"spec": {
|
|
16
|
+
"stateMachine": { "kind": "StateMachine", "code": "equipment-loan-flow" },
|
|
17
|
+
"onEnter": "SUBMITTED",
|
|
18
|
+
"assignees": [{ "type": "ROLE", "role": "EQUIPMENT_MANAGER" }],
|
|
19
|
+
"policy": "ANY_ONE",
|
|
20
|
+
"responses": [
|
|
21
|
+
{ "key": "approve", "label": "Approve", "transition": "approve" },
|
|
22
|
+
{ "key": "reject", "label": "Reject", "transition": "reject" }
|
|
23
|
+
],
|
|
24
|
+
"dueIn": "P2D"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## When to use it, and when not
|
|
30
|
+
|
|
31
|
+
Use it whenever a person must act before a business object moves on. Do not use it for plain
|
|
32
|
+
notifications (that is a Timer `NOTIFY` action or the notification inbox) or for decisions a rule
|
|
33
|
+
could make (use a CHOICE state).
|
|
34
|
+
|
|
35
|
+
## Kind and example definition
|
|
36
|
+
|
|
37
|
+
- `stateMachine`, `onEnter`: the machine and the state that opens the tasks. Not a FINAL or CHOICE state.
|
|
38
|
+
- `assignees`: person resolvers — `SPECIFIC_USER` (`userIds`), `ROLE` (role machine name, resolved
|
|
39
|
+
through RBAC), `FORM_FIELD_USER` (a `user_select` field of the machine's subject Form, by id),
|
|
40
|
+
`SUBMITTER`, `DIRECT_SUPERVISOR`, `DEPARTMENT_HEAD`, `DIVISION_HEAD` (the last three require org-directory). Resolving to nobody makes the transition into `onEnter` fail with
|
|
41
|
+
`ASSIGNEE_UNRESOLVED` — fix the role membership or the field.
|
|
42
|
+
- `policy`: `ANY_ONE` (first response decides; use it for roles), `SINGLE` (same, but you expect
|
|
43
|
+
exactly one person — a warning if the resolvers can produce several), `JOINT` (everybody must give
|
|
44
|
+
the one non-`decisive` response; one `decisive` response — e.g. reject — decides at once).
|
|
45
|
+
- `responses[]`: `key`, `label`, `transition` (must leave `onEnter`), `decisive` (JOINT only).
|
|
46
|
+
- `dueIn`: ISO 8601 duration (`P2D`, `PT4H`); it only sets the task's due time. What happens when
|
|
47
|
+
it passes is a Timer with an `ASSIGNMENT_DUE` anchor.
|
|
48
|
+
- `title`: shown to the assignees; defaults to `metadata.name`.
|
|
49
|
+
- Permissions: `assignment:definition:read|write|publish`.
|
|
50
|
+
|
|
51
|
+
Instances pin the published assignments of their machine when they start; re-entering the state
|
|
52
|
+
opens a new round. Leaving the state any other way (a Timer, a person) cancels open tasks.
|
|
53
|
+
|
|
54
|
+
Self-transitions also cancel the old round before opening the next. A deciding response leaves
|
|
55
|
+
the responding task `RESPONDED` and other open tasks `CLOSED`; an external state change uses
|
|
56
|
+
`CANCELLED`. PostgreSQL responses lock the instance before reading/writing the round, so concurrent
|
|
57
|
+
JOINT votes see committed earlier votes. Round evaluation reads every task, without a 500-row cap.
|
|
58
|
+
|
|
59
|
+
Example: `examples/definitions/equipment-loan/equipment-manager-approval.assignment.json`.
|
|
60
|
+
|
|
61
|
+
## MCP tools
|
|
62
|
+
|
|
63
|
+
| Tool | Scope | Use |
|
|
64
|
+
| --- | --- | --- |
|
|
65
|
+
| `list_my_assignments` | `<namespace>:assignment:read` (read only) | Tasks of the person the connection acts for, with responses and instance data (as `$userContent`) |
|
|
66
|
+
|
|
67
|
+
There is no tool to respond: a response takes a transition (approve, reject) and stays a human
|
|
68
|
+
step in the App. Register from the App: `assignmentMcpTools.registerInto(registry, { scopeNamespace })`.
|
|
69
|
+
|
|
70
|
+
The scope is required at listing and invocation by the MCP host. No definition-read permission is
|
|
71
|
+
required to see your own tasks: the acting user must own them. The client cannot select another
|
|
72
|
+
user. Invalid status input returns `INVALID_INPUT`; a credential without an acting user is refused.
|
|
73
|
+
|
|
74
|
+
## HTTP API (people)
|
|
75
|
+
|
|
76
|
+
| Route | Purpose |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `GET /assignments/mine?status=OPEN` | Your tasks |
|
|
79
|
+
| `GET /assignments/:id` | One of your tasks with the instance |
|
|
80
|
+
| `POST /assignments/:id/respond` `{ response, comment? }` | Respond; may take the transition |
|
|
81
|
+
|
|
82
|
+
## Events
|
|
83
|
+
|
|
84
|
+
`assignment.opened` (`assignmentCode`, `round`, `dueAt`, `assigneeIds`) and `assignment.closed`
|
|
85
|
+
(`assignmentCode`, `round`, `outcome`: the response key or `CANCELLED`), on the state-machine
|
|
86
|
+
runtime's event channel. Timer uses them for `ASSIGNMENT_DUE`.
|
|
87
|
+
|
|
88
|
+
## Adapters
|
|
89
|
+
|
|
90
|
+
None. Roles resolve through `haneinfo.rbac-policy` (`userIdsWithRole`); assignees are notified through
|
|
91
|
+
`haneinfo.notification-inbox` when it is installed.
|
|
92
|
+
|
|
93
|
+
## Common error codes and fixes
|
|
94
|
+
|
|
95
|
+
| Code | Fix |
|
|
96
|
+
| --- | --- |
|
|
97
|
+
| `UNKNOWN_STATE` / `ASSIGNMENT_ON_FINAL_STATE` | `onEnter` must be a non-FINAL state of the machine |
|
|
98
|
+
| `UNKNOWN_TRANSITION` / `TRANSITION_NOT_FROM_STATE` | A response's transition must leave `onEnter` |
|
|
99
|
+
| `JOINT_NEEDS_ONE_AGREEMENT` | Mark all but one JOINT response as `decisive` |
|
|
100
|
+
| `SINGLE_MAY_RESOLVE_MANY` (warning) | Use `ANY_ONE` for roles |
|
|
101
|
+
| `NOT_A_USER_FIELD` / `NO_SUBJECT_FORM` | `FORM_FIELD_USER` needs a `user_select` field of the subject Form |
|
|
102
|
+
| `INVALID_DURATION` | `dueIn` is a positive duration without months or years |
|
|
103
|
+
| `ASSIGNEE_UNRESOLVED` (runtime) | The resolvers produced nobody; see `details.unresolved` |
|
|
104
|
+
| `TASK_NOT_OPEN` (runtime) | Someone else already decided, or the instance moved on |
|
|
105
|
+
|
|
106
|
+
## Conditional activation
|
|
107
|
+
|
|
108
|
+
Optional spec.when uses the shared Form evaluateCondition function and PREDICATE/GROUP syntax,
|
|
109
|
+
including CONTEXT SUBMITTER_ID. False skips this assignment with no tasks or notifications and does
|
|
110
|
+
not block other transitions, even when every assignment is skipped. Empty inputs are errors.
|
|
111
|
+
|
|
112
|
+
The prepareStateEntry listener fixes when and assignee results before entry writes. Each matching
|
|
113
|
+
assignment resolves its people once and uses that exact result to open tasks. Any unresolved resolver
|
|
114
|
+
blocks entry, including partially resolved lists; details.unresolved preserves organization reasons
|
|
115
|
+
and unit information. A CHOICE stays in CHOICE and records/notifies the failure; other transitions
|
|
116
|
+
roll back to their original state and report the failure. Existing tasks keep their assignees.
|
|
117
|
+
|
|
118
|
+
## Instance readers and stored query values
|
|
119
|
+
|
|
120
|
+
Every task creation (including initial-state entry, later rounds and self-entry) grants its
|
|
121
|
+
assignee permanent read access to that instance in the same transaction. Assignment injects the
|
|
122
|
+
state-machine-owned `StateMachineReaderGrants` service instead of writing another package's table.
|
|
123
|
+
It requires state-machine 0.6 or later and the App's reader-table migration/backfill. OPEN,
|
|
124
|
+
RESPONDED, CLOSED and CANCELLED tasks all retain their reader grants; there is no revoke operation.
|
|
125
|
+
The grant is instance-specific and covers comments, following, lists and exports.
|
|
126
|
+
|
|
127
|
+
After creating the reader table, Apps must backfill every existing task, regardless of status:
|
|
128
|
+
|
|
129
|
+
```sql
|
|
130
|
+
INSERT INTO state_machine_instance_readers (instance_id, user_id, reason)
|
|
131
|
+
SELECT DISTINCT instance_id, assignee_id, 'ASSIGNED'
|
|
132
|
+
FROM assignment_tasks
|
|
133
|
+
ON CONFLICT (instance_id, user_id) DO NOTHING;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Date comparisons
|
|
137
|
+
|
|
138
|
+
GT/GTE/LT/LTE compare numbers, valid calendar dates (YYYY-MM-DD), or timezone-qualified datetimes
|
|
139
|
+
(YYYY-MM-DDTHH:mm:ss with optional fractional seconds and Z or +/-HH:mm). Both operands must have
|
|
140
|
+
the same category. Dates use calendar order; datetimes compare UTC instants at millisecond precision.
|
|
141
|
+
Invalid dates, mixed categories and empty operands yield false. EQ/NEQ/IN retain strict scalar equality;
|
|
142
|
+
matching instants with different textual offsets are still unequal for those operators.
|
|
143
|
+
|
|
144
|
+
## Instance privacy boundary
|
|
145
|
+
|
|
146
|
+
Task reads and responses first check task ownership and return identical TASK_NOT_FOUND/404 for another person's or a missing task. Every assignee receives a permanent state-machine reader grant on task creation, so the internal runtime snapshot read is restricted to an already authorized reader. `tasksOf` is a trusted internal API, not an HTTP/MCP instance lookup. USER transitions outside task responses apply state-machine's read-before-write checks; Assignment triggers keep their existing authorization.
|
|
147
|
+
|
|
148
|
+
## Period delegation (draft implementation)
|
|
149
|
+
|
|
150
|
+
With the optional delegation resolver, original tasks remain and delegates receive separate tasks
|
|
151
|
+
with nullable onBehalfOfId and delegationId. Proxy titles start with [Delegate]. Task creation grants
|
|
152
|
+
permanent instance readership in the same transaction. No resolver means the existing behavior.
|
|
153
|
+
Migrate the two nullable assignment_tasks columns before deploying; no backfill of those columns is
|
|
154
|
+
needed for older tasks. Upgrade state-machine for optional actingUserId/onBehalfOfId history output.
|
|
155
|
+
|
|
156
|
+
ANY_ONE/SINGLE completes on the first original or delegated response. JOINT counts one vote per
|
|
157
|
+
original assignee; the first response closes that vote's other tasks and does not add votes. A
|
|
158
|
+
proxy never expands into another proxy. A delegate already present in the round is not duplicated;
|
|
159
|
+
when several originals share a delegate, deterministic delegation-id order picks one represented
|
|
160
|
+
original. Other originals keep their own required votes.
|
|
161
|
+
|
|
162
|
+
Delegation registers internal effects for immediate, idempotent backfill of original OPEN tasks and
|
|
163
|
+
transactional revocation cancellation. Future periods do not backfill tasks open before the start.
|
|
164
|
+
Expired OPEN proxy tasks are hidden in GET /assignments/mine and list_my_assignments; a response
|
|
165
|
+
commits CANCELLED and then raises DELEGATION_ENDED/409. Revocation cancels OPEN proxies in its own
|
|
166
|
+
transaction. Permanent readers survive both. GET /assignments/:id returns no response choices for
|
|
167
|
+
an expired OPEN proxy. Task ownership still hides other people's tasks as TASK_NOT_FOUND/404.
|
|
168
|
+
|
|
169
|
+
Task reads add optional onBehalfOfId and onBehalfOfName. Names use one authorized-page batch through
|
|
170
|
+
identity-store.findActiveNamesByIds; missing/inactive/older providers yield null. MCP names are
|
|
171
|
+
$userContent. A successful proxy response records actual actingUserId, and notifies the original
|
|
172
|
+
with assignment-response:<taskId>. Appointment notifications belong to delegation; task notification
|
|
173
|
+
keys remain assignment:<taskId>. Missing inbox capability skips notifications as before.
|
|
174
|
+
|
|
175
|
+
See @haneinfo/delegation's agent guide for period rules, human management and read-only MCP. There
|
|
176
|
+
is no MCP response, creation, revocation, per-task reassignment or delegation frontend.
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
## Instance access lists (draft implementation)
|
|
180
|
+
|
|
181
|
+
Implemented against draft decision 202610-c8e3; the decision remains draft.
|
|
182
|
+
|
|
183
|
+
Assignment calls StateMachineReaderGrants.grantAssigned(instanceId, userIds, tx, source?) in the
|
|
184
|
+
same task transaction. The optional source defaults to ASSIGNED; notifyTasks groups original and
|
|
185
|
+
one-hop delegate tasks and passes DELEGATED for delegates. The original call shape is compatible.
|
|
186
|
+
Both sources are permanent READ; task completion/cancellation and delegation expiry/revocation
|
|
187
|
+
never remove them. Manual GRANTED READ/WRITE entries coexist under a source-specific key.
|
|
188
|
+
Task ownership and ASSIGNMENT transition authorization remain unchanged.
|
|
189
|
+
|
|
190
|
+
Upgrade the affected mechanisms together after applying the App migration. The maintained model,
|
|
191
|
+
HTTP routes, read-only list_instance_access MCP tool, errors and permission contract are documented
|
|
192
|
+
in @haneinfo/state-machine/agent-guide.md. Its prisma/instance-access.sql migrates the existing reader
|
|
193
|
+
table to USER/ROLE, READ/WRITE and ASSIGNED/DELEGATED/GRANTED rows while retaining timestamps.
|
|
194
|
+
The maintainer selected (instanceId, principalType, principalId, source) uniqueness. Manual grants are
|
|
195
|
+
limited to 100 by default; permanent READ entries survive manual removal. See the package repository
|
|
196
|
+
validation/equipment-loan/instance-access/report.md for SQL, tests and App restoration evidence.
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
## Instance lifecycle (draft 202610-f1a8)
|
|
200
|
+
|
|
201
|
+
Implemented from draft decision 202610-f1a8; the decision remains draft. Upgrade state-machine,
|
|
202
|
+
list-view, collaboration, attachments, import-export, assignment and timer together. No frontend,
|
|
203
|
+
automatic archive or bulk lifecycle operations are included. Permanently purged data cannot be
|
|
204
|
+
restored by this API: database and private file backups must cover the entire deletion retention
|
|
205
|
+
period and be restored consistently.
|
|
206
|
+
|
|
207
|
+
Task reads/responses require a live runtime instance; deleted instances return INSTANCE_NOT_FOUND
|
|
208
|
+
and are omitted from personal task lists. Delegation backfill skips deleted instances. On the
|
|
209
|
+
transaction-bound state-machine.instance.purging event, built-in stores remove instance tasks and
|
|
210
|
+
bindings using that same transaction. They are plain instance ids without cross-package foreign
|
|
211
|
+
keys. Custom stores can implement purgeInstance for equivalent cleanup. No notifications are sent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.service.d.ts","sourceRoot":"","sources":["../src/assignment.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EAGtB,KAAK,qBAAqB,EAE1B,KAAK,gBAAgB,EAGrB,KAAK,cAAc,EAGnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAsB,KAAK,YAAY,EAAY,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EAEL,KAAK,eAAe,EAGpB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAElE,eAAO,MAAM,gBAAgB,eAA0C,CAAC;AACxE,eAAO,MAAM,mBAAmB,eAA6C,CAAC;AAE9E,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;IACvD,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,EAAE,IAAI,CACZ,wBAAwB,EACxB,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,CACjE,GAAG,IAAI,CAAC;CACV;AAED,qBACa,iBAAkB,YAAW,YAAY;
|
|
1
|
+
{"version":3,"file":"assignment.service.d.ts","sourceRoot":"","sources":["../src/assignment.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,10 @@ let AssignmentService = class AssignmentService {
|
|
|
47
47
|
this.identity = identity;
|
|
48
48
|
this.preparedEntries = new WeakSet();
|
|
49
49
|
this.listener = {
|
|
50
|
+
onEvent: async (event) => {
|
|
51
|
+
if (event.name === 'state-machine.instance.purging')
|
|
52
|
+
await this.store.run(event.tx, (store) => store.purgeInstance?.(event.instanceId) ?? Promise.resolve());
|
|
53
|
+
},
|
|
50
54
|
onStarted: async ({ instance, tx }) => this.pin(instance, tx),
|
|
51
55
|
prepareStateEntry: async (event) => {
|
|
52
56
|
const apply = await this.prepareEntry(event);
|
|
@@ -231,7 +235,8 @@ let AssignmentService = class AssignmentService {
|
|
|
231
235
|
.filter((task) => !task.onBehalfOfId)
|
|
232
236
|
.sort((a, b) => a.instanceId.localeCompare(b.instanceId));
|
|
233
237
|
for (const candidate of candidates) {
|
|
234
|
-
await this.runtime.get(candidate.instanceId, t, { lock: true })
|
|
238
|
+
if (!(await this.runtime.get(candidate.instanceId, t, { lock: true })))
|
|
239
|
+
continue;
|
|
235
240
|
const task = await store.task(candidate.id);
|
|
236
241
|
if (task?.status !== 'OPEN' ||
|
|
237
242
|
!(await this.delegation?.isActive({ ...delegation, assignmentCode: task.assignmentCode, at: this.now() }, t)))
|
|
@@ -298,7 +303,8 @@ let AssignmentService = class AssignmentService {
|
|
|
298
303
|
}
|
|
299
304
|
// Lock the instance before any task writes. Other responders and state transitions use
|
|
300
305
|
// this same lock order, so concurrent JOINT votes cannot both miss each other's vote.
|
|
301
|
-
await this.runtime.get(task.instanceId, tx, { lock: true })
|
|
306
|
+
if (!(await this.runtime.get(task.instanceId, tx, { lock: true })))
|
|
307
|
+
throw new plugin_api_1.MechanismError('INSTANCE_NOT_FOUND', 'Instance not found', 404);
|
|
302
308
|
task = await store.task(input.taskId);
|
|
303
309
|
if (!task || task.assigneeId !== input.userId)
|
|
304
310
|
throw new plugin_api_1.MechanismError('TASK_NOT_FOUND', 'No such task of yours', 404);
|
|
@@ -417,7 +423,8 @@ let AssignmentService = class AssignmentService {
|
|
|
417
423
|
const tasks = await store.tasks({ assigneeId: userId, status });
|
|
418
424
|
const visible = [];
|
|
419
425
|
for (const task of tasks)
|
|
420
|
-
if (task.status !== 'OPEN' || (await this.delegationActive(task, tx)))
|
|
426
|
+
if ((task.status !== 'OPEN' || (await this.delegationActive(task, tx))) &&
|
|
427
|
+
(await this.runtime.get(task.instanceId, tx)))
|
|
421
428
|
visible.push(task);
|
|
422
429
|
return this.withNames(await Promise.all(visible.map((task) => this.view(store, task, tx))), tx);
|
|
423
430
|
});
|
|
@@ -432,7 +439,11 @@ let AssignmentService = class AssignmentService {
|
|
|
432
439
|
}
|
|
433
440
|
/** Every task of an instance, for its history view. */
|
|
434
441
|
async tasksOf(instanceId, tx) {
|
|
435
|
-
return this.store.run(tx, (store) =>
|
|
442
|
+
return this.store.run(tx, async (store, t) => {
|
|
443
|
+
if (!(await this.runtime.get(instanceId, t)))
|
|
444
|
+
throw new plugin_api_1.MechanismError('INSTANCE_NOT_FOUND', 'Instance not found', 404);
|
|
445
|
+
return store.tasks({ instanceId });
|
|
446
|
+
});
|
|
436
447
|
}
|
|
437
448
|
async withNames(tasks, tx) {
|
|
438
449
|
const ids = [
|
|
@@ -446,6 +457,8 @@ let AssignmentService = class AssignmentService {
|
|
|
446
457
|
async view(store, task, tx) {
|
|
447
458
|
const binding = (await store.bindings(task.instanceId)).find((b) => b.assignmentCode === task.assignmentCode);
|
|
448
459
|
const instance = await this.runtime.get(task.instanceId, tx);
|
|
460
|
+
if (!instance)
|
|
461
|
+
throw new plugin_api_1.MechanismError('INSTANCE_NOT_FOUND', 'Instance not found', 404);
|
|
449
462
|
return {
|
|
450
463
|
...task,
|
|
451
464
|
...(task.status === 'RESPONDED' ? { actingUserId: task.assigneeId } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.service.js","sourceRoot":"","sources":["../src/assignment.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"assignment.service.js","sourceRoot":"","sources":["../src/assignment.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-store.d.ts","sourceRoot":"","sources":["../src/prisma-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAIlB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"prisma-store.d.ts","sourceRoot":"","sources":["../src/prisma-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAoGjB,qBAAa,qBAAsB,YAAW,eAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,OAAO;IAE5C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAM7F"}
|
package/dist/prisma-store.js
CHANGED
|
@@ -5,6 +5,10 @@ class PrismaTx {
|
|
|
5
5
|
constructor(db) {
|
|
6
6
|
this.db = db;
|
|
7
7
|
}
|
|
8
|
+
async purgeInstance(instanceId) {
|
|
9
|
+
await this.db.$executeRawUnsafe('DELETE FROM assignment_tasks WHERE instance_id = $1', instanceId);
|
|
10
|
+
await this.db.$executeRawUnsafe('DELETE FROM assignment_bindings WHERE instance_id = $1', instanceId);
|
|
11
|
+
}
|
|
8
12
|
async cancelDelegation(delegationId) {
|
|
9
13
|
await this.db.assignmentTask.updateMany({
|
|
10
14
|
where: { delegationId, status: 'OPEN' },
|
package/dist/prisma-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-store.js","sourceRoot":"","sources":["../src/prisma-store.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"prisma-store.js","sourceRoot":"","sources":["../src/prisma-store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export interface TaskRecord {
|
|
|
28
28
|
createdAt: Date;
|
|
29
29
|
}
|
|
30
30
|
export interface AssignmentStoreTx {
|
|
31
|
+
purgeInstance?(instanceId: string): Promise<void>;
|
|
31
32
|
saveBindings(bindings: BindingRecord[]): Promise<void>;
|
|
32
33
|
bindings(instanceId: string): Promise<BindingRecord[]>;
|
|
33
34
|
createTasks(tasks: Omit<TaskRecord, 'id'>[]): Promise<TaskRecord[]>;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,wGAAwG;AAExG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,gBAAgB,eAA0C,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvD,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC7C,KAAK,CAAC,MAAM,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,CACR,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,UAAU,EAC1B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC,CAAC,GAClF,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,gBAAgB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9F;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -8,6 +8,10 @@ class MemoryTx {
|
|
|
8
8
|
constructor(state) {
|
|
9
9
|
this.state = state;
|
|
10
10
|
}
|
|
11
|
+
async purgeInstance(instanceId) {
|
|
12
|
+
this.state.tasks = this.state.tasks.filter((r) => r.instanceId !== instanceId);
|
|
13
|
+
this.state.bindings = this.state.bindings.filter((r) => r.instanceId !== instanceId);
|
|
14
|
+
}
|
|
11
15
|
async cancelDelegation(delegationId) {
|
|
12
16
|
for (const task of this.state.tasks)
|
|
13
17
|
if (task.delegationId === delegationId && task.status === 'OPEN')
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";AAAA,wGAAwG;;;AAK3F,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haneinfo/assignment",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Assignment mechanism: Assignment definitions (who must respond when a state machine enters a state) and the task runtime, registered with @haneinfo/definition-registry.",
|
|
6
6
|
"files": [
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
"./package.json": "./package.json"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@haneinfo/
|
|
42
|
-
"@haneinfo/
|
|
41
|
+
"@haneinfo/plugin-api": "1.17.0",
|
|
42
|
+
"@haneinfo/form": "0.3.8"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@haneinfo/common": "^0.3.4 || ^0.4.0",
|
|
46
46
|
"@haneinfo/definition-registry": "^0.1.0",
|
|
47
|
-
"@haneinfo/state-machine": "^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0",
|
|
47
|
+
"@haneinfo/state-machine": "^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 || ^0.15.0",
|
|
48
48
|
"@haneinfo/plugin-host-nest": "^2.0.0",
|
|
49
49
|
"@nestjs/common": "^11.0.0",
|
|
50
50
|
"@nestjs/core": "^11.0.0",
|
|
@@ -64,11 +64,11 @@
|
|
|
64
64
|
"typescript": "^5.9.3",
|
|
65
65
|
"vitest": "^4.1.11",
|
|
66
66
|
"zod": "^4.4.0",
|
|
67
|
-
"@haneinfo/plugin-host-nest": "2.1.0",
|
|
68
67
|
"@haneinfo/common": "0.4.0",
|
|
69
|
-
"@haneinfo/
|
|
70
|
-
"@haneinfo/plugin-
|
|
71
|
-
"@haneinfo/
|
|
68
|
+
"@haneinfo/state-machine": "0.15.0",
|
|
69
|
+
"@haneinfo/plugin-host-nest": "2.1.0",
|
|
70
|
+
"@haneinfo/definition-registry": "0.1.13",
|
|
71
|
+
"@haneinfo/plugin-testkit": "2.3.0"
|
|
72
72
|
},
|
|
73
73
|
"license": "UNLICENSED",
|
|
74
74
|
"publishConfig": {
|