@haneinfo/assignment 0.4.2 → 0.6.0
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 +50 -0
- package/agent-guide.md +50 -0
- package/dist/assignment.controller.d.ts +6 -0
- package/dist/assignment.controller.d.ts.map +1 -1
- package/dist/assignment.module.d.ts.map +1 -1
- package/dist/assignment.module.js +1 -0
- package/dist/assignment.module.js.map +1 -1
- package/dist/assignment.service.d.ts +21 -2
- package/dist/assignment.service.d.ts.map +1 -1
- package/dist/assignment.service.js +196 -19
- package/dist/assignment.service.js.map +1 -1
- package/dist/mcp-tools.d.ts.map +1 -1
- package/dist/mcp-tools.js +6 -0
- package/dist/mcp-tools.js.map +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +4 -2
- package/dist/plugin.js.map +1 -1
- package/dist/prisma-store.d.ts.map +1 -1
- package/dist/prisma-store.js +6 -0
- package/dist/prisma-store.js.map +1 -1
- package/dist/store.d.ts +4 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +5 -0
- package/dist/store.js.map +1 -1
- package/dist/testing.d.ts +3 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +2 -1
- package/dist/testing.js.map +1 -1
- package/haneinfo.plugin.json +5 -3
- package/package.json +6 -6
- package/prisma/assignment.prisma +2 -0
package/README.md
CHANGED
|
@@ -31,3 +31,53 @@ matching instants with different textual offsets are still unequal for those ope
|
|
|
31
31
|
## Instance privacy boundary
|
|
32
32
|
|
|
33
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.
|
package/agent-guide.md
CHANGED
|
@@ -144,3 +144,53 @@ matching instants with different textual offsets are still unequal for those ope
|
|
|
144
144
|
## Instance privacy boundary
|
|
145
145
|
|
|
146
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.
|
|
@@ -11,6 +11,7 @@ export declare class AssignmentController {
|
|
|
11
11
|
respond(user: InteractivePrincipal, id: string, body: unknown): Promise<{
|
|
12
12
|
completed: boolean;
|
|
13
13
|
task: {
|
|
14
|
+
actingUserId: string;
|
|
14
15
|
status: "RESPONDED";
|
|
15
16
|
response: string;
|
|
16
17
|
comment: string | null;
|
|
@@ -21,6 +22,8 @@ export declare class AssignmentController {
|
|
|
21
22
|
assignmentVersion: number;
|
|
22
23
|
round: number;
|
|
23
24
|
assigneeId: string;
|
|
25
|
+
onBehalfOfId?: string | null;
|
|
26
|
+
delegationId?: string | null;
|
|
24
27
|
title: string;
|
|
25
28
|
dueAt: Date | null;
|
|
26
29
|
createdAt: Date;
|
|
@@ -29,6 +32,7 @@ export declare class AssignmentController {
|
|
|
29
32
|
} | {
|
|
30
33
|
completed: boolean;
|
|
31
34
|
task: {
|
|
35
|
+
actingUserId: string;
|
|
32
36
|
status: "RESPONDED";
|
|
33
37
|
response: string;
|
|
34
38
|
comment: string | null;
|
|
@@ -39,6 +43,8 @@ export declare class AssignmentController {
|
|
|
39
43
|
assignmentVersion: number;
|
|
40
44
|
round: number;
|
|
41
45
|
assigneeId: string;
|
|
46
|
+
onBehalfOfId?: string | null;
|
|
47
|
+
delegationId?: string | null;
|
|
42
48
|
title: string;
|
|
43
49
|
dueAt: Date | null;
|
|
44
50
|
createdAt: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.controller.d.ts","sourceRoot":"","sources":["../src/assignment.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAkB,MAAM,sBAAsB,CAAC;AAajF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAwBzD,0GAA0G;AAC1G,qBAEa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,iBAAiB;IAG3D,IAAI,CAAgB,IAAI,EAAE,oBAAoB,EAAW,KAAK,EAAE,OAAO;;;IAUvE,GAAG,CAAgB,IAAI,EAAE,oBAAoB,EAAe,EAAE,EAAE,MAAM;IAKtE,OAAO,CACU,IAAI,EAAE,oBAAoB,EAC5B,EAAE,EAAE,MAAM,EACf,IAAI,EAAE,OAAO
|
|
1
|
+
{"version":3,"file":"assignment.controller.d.ts","sourceRoot":"","sources":["../src/assignment.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAkB,MAAM,sBAAsB,CAAC;AAajF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAwBzD,0GAA0G;AAC1G,qBAEa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,iBAAiB;IAG3D,IAAI,CAAgB,IAAI,EAAE,oBAAoB,EAAW,KAAK,EAAE,OAAO;;;IAUvE,GAAG,CAAgB,IAAI,EAAE,oBAAoB,EAAe,EAAE,EAAE,MAAM;IAKtE,OAAO,CACU,IAAI,EAAE,oBAAoB,EAC5B,EAAE,EAAE,MAAM,EACf,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.module.d.ts","sourceRoot":"","sources":["../src/assignment.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ/E,qBACa,0BAA2B,YAAW,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,sBAAsB;IAE1F,YAAY;CAGb;AAED,
|
|
1
|
+
{"version":3,"file":"assignment.module.d.ts","sourceRoot":"","sources":["../src/assignment.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ/E,qBACa,0BAA2B,YAAW,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,sBAAsB;IAE1F,YAAY;CAGb;AAED,qBAea,gBAAgB;CAAG"}
|
|
@@ -43,6 +43,7 @@ exports.AssignmentModule = AssignmentModule = __decorate([
|
|
|
43
43
|
(0, common_2.Module)({
|
|
44
44
|
controllers: [assignment_controller_1.AssignmentController],
|
|
45
45
|
providers: [
|
|
46
|
+
{ provide: assignment_service_1.ASSIGNMENT_CLOCK, useValue: () => new Date() },
|
|
46
47
|
AssignmentKindRegistration,
|
|
47
48
|
{
|
|
48
49
|
provide: store_1.ASSIGNMENT_STORE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.module.js","sourceRoot":"","sources":["../src/assignment.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAiD;AACjD,qDAAwF;AACxF,2CAA+E;AAC/E,mEAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"assignment.module.js","sourceRoot":"","sources":["../src/assignment.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAiD;AACjD,qDAAwF;AACxF,2CAA+E;AAC/E,mEAA+D;AAC/D,6DAA2E;AAC3E,iCAAkD;AAClD,2CAAiD;AACjD,iDAAuD;AACvD,mCAA2C;AAGpC,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,YAA0D,QAAgC;QAAhC,aAAQ,GAAR,QAAQ,CAAwB;IAAG,CAAC;IAE9F,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,+BAAwB,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AANY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,gCAAmB,CAAC,CAAA;;GAD7B,0BAA0B,CAMtC;AAiBM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAf5B,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,4CAAoB,CAAC;QACnC,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,qCAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE;YACzD,0BAA0B;YAC1B;gBACE,OAAO,EAAE,wBAAgB;gBACzB,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,IAAI,oCAAqB,CAAC,MAAM,CAAC;gBACxE,MAAM,EAAE,CAAC,sBAAa,CAAC;aACxB;YACD,sCAAiB;YACjB,8BAAkB;SACnB;QACD,OAAO,EAAE,CAAC,sCAAiB,EAAE,8BAAkB,CAAC;KACjD,CAAC;GACW,gBAAgB,CAAG"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* transaction, with an ASSIGNMENT trigger (which skips the transition's person permission: the
|
|
11
11
|
* assignment itself is the authorization).
|
|
12
12
|
*/
|
|
13
|
-
import { type DefinitionRegistryPort, type NotificationInboxPort, type OrgDirectoryPort, type RbacPolicyPort, type StateMachineInstanceView, type StateMachineListener, type StateMachineRuntimePort } from '@haneinfo/plugin-api';
|
|
13
|
+
import { type DefinitionRegistryPort, type DelegationMatch, type DelegationResolverPort, type IdentityStorePort, type NotificationInboxPort, type OrgDirectoryPort, type RbacPolicyPort, type StateMachineInstanceView, type StateMachineListener, type StateMachineRuntimePort } from '@haneinfo/plugin-api';
|
|
14
14
|
import { StateMachineReaderGrants } from '@haneinfo/state-machine';
|
|
15
15
|
import { type OnModuleInit } from '@nestjs/common';
|
|
16
16
|
import { type AssignmentStore, type TaskRecord } from './store';
|
|
@@ -18,6 +18,8 @@ import type { AssignmentResponse, AssignmentSpec } from './types';
|
|
|
18
18
|
export declare const ASSIGNMENT_CLOCK: unique symbol;
|
|
19
19
|
export declare const ASSIGNMENT_APP_NAME: unique symbol;
|
|
20
20
|
export interface AssignmentTaskView extends TaskRecord {
|
|
21
|
+
onBehalfOfName?: string | null;
|
|
22
|
+
actingUserId?: string;
|
|
21
23
|
responses: Pick<AssignmentResponse, 'key' | 'label'>[];
|
|
22
24
|
policy: AssignmentSpec['policy'];
|
|
23
25
|
instance: Pick<StateMachineInstanceView, 'id' | 'machine' | 'state' | 'data' | 'submitterId' | 'revision'> | null;
|
|
@@ -31,15 +33,25 @@ export declare class AssignmentService implements OnModuleInit {
|
|
|
31
33
|
private readonly notifications?;
|
|
32
34
|
private readonly appName;
|
|
33
35
|
private readonly orgDirectory?;
|
|
36
|
+
private readonly delegation?;
|
|
37
|
+
private readonly identity?;
|
|
34
38
|
private readonly now;
|
|
35
39
|
private readonly preparedEntries;
|
|
36
40
|
readonly listener: StateMachineListener;
|
|
37
|
-
constructor(store: AssignmentStore, runtime: StateMachineRuntimePort, registry: DefinitionRegistryPort, readerGrants: StateMachineReaderGrants, rbac?: RbacPolicyPort | undefined, notifications?: NotificationInboxPort | undefined, clock?: () => Date, appName?: string, orgDirectory?: OrgDirectoryPort | undefined);
|
|
41
|
+
constructor(store: AssignmentStore, runtime: StateMachineRuntimePort, registry: DefinitionRegistryPort, readerGrants: StateMachineReaderGrants, rbac?: RbacPolicyPort | undefined, notifications?: NotificationInboxPort | undefined, clock?: () => Date, appName?: string, orgDirectory?: OrgDirectoryPort | undefined, delegation?: DelegationResolverPort | undefined, identity?: IdentityStorePort | undefined);
|
|
38
42
|
onModuleInit(): void;
|
|
39
43
|
private pin;
|
|
40
44
|
private prepareEntry;
|
|
41
45
|
private cancelOpen;
|
|
42
46
|
private open;
|
|
47
|
+
private notifyTasks;
|
|
48
|
+
private expandDelegations;
|
|
49
|
+
/** Called inside delegation creation; instance locks make retries idempotent. */
|
|
50
|
+
backfillDelegation(delegation: DelegationMatch, tx: unknown): Promise<void>;
|
|
51
|
+
/** Joins revocation's transaction. CAS and row locks serialize cancellation with responses. */
|
|
52
|
+
prepareDelegationRevocation(delegationId: string, tx: unknown): Promise<void>;
|
|
53
|
+
cancelDelegation(delegationId: string, tx: unknown): Promise<void>;
|
|
54
|
+
private delegationActive;
|
|
43
55
|
/** A person responds to their task. Human interface only (decision 202610-00b3, point 16 by analogy). */
|
|
44
56
|
respond(input: {
|
|
45
57
|
taskId: string;
|
|
@@ -49,6 +61,7 @@ export declare class AssignmentService implements OnModuleInit {
|
|
|
49
61
|
}): Promise<{
|
|
50
62
|
completed: boolean;
|
|
51
63
|
task: {
|
|
64
|
+
actingUserId: string;
|
|
52
65
|
status: "RESPONDED";
|
|
53
66
|
response: string;
|
|
54
67
|
comment: string | null;
|
|
@@ -59,6 +72,8 @@ export declare class AssignmentService implements OnModuleInit {
|
|
|
59
72
|
assignmentVersion: number;
|
|
60
73
|
round: number;
|
|
61
74
|
assigneeId: string;
|
|
75
|
+
onBehalfOfId?: string | null;
|
|
76
|
+
delegationId?: string | null;
|
|
62
77
|
title: string;
|
|
63
78
|
dueAt: Date | null;
|
|
64
79
|
createdAt: Date;
|
|
@@ -67,6 +82,7 @@ export declare class AssignmentService implements OnModuleInit {
|
|
|
67
82
|
} | {
|
|
68
83
|
completed: boolean;
|
|
69
84
|
task: {
|
|
85
|
+
actingUserId: string;
|
|
70
86
|
status: "RESPONDED";
|
|
71
87
|
response: string;
|
|
72
88
|
comment: string | null;
|
|
@@ -77,6 +93,8 @@ export declare class AssignmentService implements OnModuleInit {
|
|
|
77
93
|
assignmentVersion: number;
|
|
78
94
|
round: number;
|
|
79
95
|
assigneeId: string;
|
|
96
|
+
onBehalfOfId?: string | null;
|
|
97
|
+
delegationId?: string | null;
|
|
80
98
|
title: string;
|
|
81
99
|
dueAt: Date | null;
|
|
82
100
|
createdAt: Date;
|
|
@@ -91,6 +109,7 @@ export declare class AssignmentService implements OnModuleInit {
|
|
|
91
109
|
getMine(userId: string, taskId: string): Promise<AssignmentTaskView>;
|
|
92
110
|
/** Every task of an instance, for its history view. */
|
|
93
111
|
tasksOf(instanceId: string, tx?: unknown): Promise<TaskRecord[]>;
|
|
112
|
+
private withNames;
|
|
94
113
|
private view;
|
|
95
114
|
}
|
|
96
115
|
//# sourceMappingURL=assignment.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.service.d.ts","sourceRoot":"","sources":["../src/assignment.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"assignment.service.d.ts","sourceRoot":"","sources":["../src/assignment.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ const store_1 = require("./store");
|
|
|
34
34
|
exports.ASSIGNMENT_CLOCK = Symbol.for('haneinfo.assignment.clock');
|
|
35
35
|
exports.ASSIGNMENT_APP_NAME = Symbol.for('haneinfo.assignment.app-name');
|
|
36
36
|
let AssignmentService = class AssignmentService {
|
|
37
|
-
constructor(store, runtime, registry, readerGrants, rbac, notifications, clock, appName = 'app', orgDirectory) {
|
|
37
|
+
constructor(store, runtime, registry, readerGrants, rbac, notifications, clock, appName = 'app', orgDirectory, delegation, identity) {
|
|
38
38
|
this.store = store;
|
|
39
39
|
this.runtime = runtime;
|
|
40
40
|
this.registry = registry;
|
|
@@ -43,6 +43,8 @@ let AssignmentService = class AssignmentService {
|
|
|
43
43
|
this.notifications = notifications;
|
|
44
44
|
this.appName = appName;
|
|
45
45
|
this.orgDirectory = orgDirectory;
|
|
46
|
+
this.delegation = delegation;
|
|
47
|
+
this.identity = identity;
|
|
46
48
|
this.preparedEntries = new WeakSet();
|
|
47
49
|
this.listener = {
|
|
48
50
|
onStarted: async ({ instance, tx }) => this.pin(instance, tx),
|
|
@@ -64,6 +66,11 @@ let AssignmentService = class AssignmentService {
|
|
|
64
66
|
}
|
|
65
67
|
onModuleInit() {
|
|
66
68
|
this.runtime.addListener(this.listener);
|
|
69
|
+
this.delegation?.registerAssignmentEffects?.({
|
|
70
|
+
backfill: (delegation, tx) => this.backfillDelegation(delegation, tx),
|
|
71
|
+
prepareRevocation: (delegationId, tx) => this.prepareDelegationRevocation(delegationId, tx),
|
|
72
|
+
cancel: (delegationId, tx) => this.cancelDelegation(delegationId, tx),
|
|
73
|
+
});
|
|
67
74
|
}
|
|
68
75
|
// --- Listener ----------------------------------------------------------------------------
|
|
69
76
|
async pin(instance, tx) {
|
|
@@ -130,7 +137,7 @@ let AssignmentService = class AssignmentService {
|
|
|
130
137
|
const dueAt = dueIn ? new Date(now.getTime() + dueIn) : null;
|
|
131
138
|
const round = (await store.lastRound(instance.id, binding.assignmentCode)) + 1;
|
|
132
139
|
const title = spec.title ?? binding.definition.metadata.name;
|
|
133
|
-
const
|
|
140
|
+
const originals = await store.createTasks(resolution.userIds.map((assigneeId) => ({
|
|
134
141
|
instanceId: instance.id,
|
|
135
142
|
assignmentCode: binding.assignmentCode,
|
|
136
143
|
assignmentVersion: binding.version,
|
|
@@ -144,34 +151,147 @@ let AssignmentService = class AssignmentService {
|
|
|
144
151
|
respondedAt: null,
|
|
145
152
|
createdAt: now,
|
|
146
153
|
})));
|
|
147
|
-
await this.
|
|
154
|
+
const tasks = [...originals, ...(await this.expandDelegations(store, originals, tx, now))];
|
|
155
|
+
await this.notifyTasks(tasks, tx);
|
|
156
|
+
await this.runtime.emit({
|
|
157
|
+
name: 'assignment.opened',
|
|
158
|
+
instanceId: instance.id,
|
|
159
|
+
payload: {
|
|
160
|
+
assignmentCode: binding.assignmentCode,
|
|
161
|
+
round,
|
|
162
|
+
dueAt: dueAt?.toISOString() ?? null,
|
|
163
|
+
assigneeIds: tasks.map((task) => task.assigneeId),
|
|
164
|
+
},
|
|
165
|
+
}, tx);
|
|
166
|
+
}
|
|
167
|
+
async notifyTasks(tasks, tx) {
|
|
168
|
+
if (!tasks.length)
|
|
169
|
+
return;
|
|
170
|
+
for (const source of ['ASSIGNED', 'DELEGATED']) {
|
|
171
|
+
const ids = tasks
|
|
172
|
+
.filter((task) => Boolean(task.delegationId) === (source === 'DELEGATED'))
|
|
173
|
+
.map((task) => task.assigneeId);
|
|
174
|
+
if (ids.length)
|
|
175
|
+
await this.readerGrants.grantAssigned(tasks[0].instanceId, ids, tx, source);
|
|
176
|
+
}
|
|
148
177
|
if (this.notifications) {
|
|
149
178
|
await this.notifications.notifyMany(tasks.map((task) => ({
|
|
150
179
|
recipientUserId: task.assigneeId,
|
|
151
180
|
idempotencyKey: `assignment:${task.id}`,
|
|
152
181
|
type: 'assignment.opened',
|
|
153
|
-
title,
|
|
182
|
+
title: task.title,
|
|
154
183
|
sourceApp: this.appName,
|
|
155
184
|
sourceEntityType: 'AssignmentTask',
|
|
156
185
|
sourceEntityId: task.id,
|
|
157
186
|
targetPath: `/assignments/${task.id}`,
|
|
158
187
|
})), { tx });
|
|
159
188
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
189
|
+
}
|
|
190
|
+
async expandDelegations(store, originals, tx, at) {
|
|
191
|
+
if (!this.delegation || !originals.length)
|
|
192
|
+
return [];
|
|
193
|
+
const first = originals[0];
|
|
194
|
+
const round = await store.tasks({
|
|
195
|
+
instanceId: first.instanceId,
|
|
196
|
+
assignmentCode: first.assignmentCode,
|
|
197
|
+
round: first.round,
|
|
198
|
+
});
|
|
199
|
+
const occupied = new Set(round.map((task) => task.assigneeId));
|
|
200
|
+
const matches = await this.delegation.resolve({
|
|
201
|
+
delegatorIds: originals.map((task) => task.assigneeId),
|
|
202
|
+
assignmentCode: first.assignmentCode,
|
|
203
|
+
at,
|
|
169
204
|
}, tx);
|
|
205
|
+
const created = [];
|
|
206
|
+
for (const match of matches) {
|
|
207
|
+
if (occupied.has(match.delegateId))
|
|
208
|
+
continue;
|
|
209
|
+
const original = originals.find((task) => !task.onBehalfOfId && task.assigneeId === match.delegatorId && task.status === 'OPEN');
|
|
210
|
+
if (!original)
|
|
211
|
+
continue;
|
|
212
|
+
occupied.add(match.delegateId);
|
|
213
|
+
const { id: _id, ...input } = original;
|
|
214
|
+
created.push(...(await store.createTasks([
|
|
215
|
+
{
|
|
216
|
+
...input,
|
|
217
|
+
assigneeId: match.delegateId,
|
|
218
|
+
onBehalfOfId: match.delegatorId,
|
|
219
|
+
delegationId: match.delegationId,
|
|
220
|
+
title: `[Delegate] ${original.title}`,
|
|
221
|
+
createdAt: at,
|
|
222
|
+
},
|
|
223
|
+
])));
|
|
224
|
+
}
|
|
225
|
+
return created;
|
|
226
|
+
}
|
|
227
|
+
/** Called inside delegation creation; instance locks make retries idempotent. */
|
|
228
|
+
async backfillDelegation(delegation, tx) {
|
|
229
|
+
await this.store.run(tx, async (store, t) => {
|
|
230
|
+
const candidates = (await store.tasks({ assigneeId: delegation.delegatorId, status: 'OPEN' }))
|
|
231
|
+
.filter((task) => !task.onBehalfOfId)
|
|
232
|
+
.sort((a, b) => a.instanceId.localeCompare(b.instanceId));
|
|
233
|
+
for (const candidate of candidates) {
|
|
234
|
+
await this.runtime.get(candidate.instanceId, t, { lock: true });
|
|
235
|
+
const task = await store.task(candidate.id);
|
|
236
|
+
if (task?.status !== 'OPEN' ||
|
|
237
|
+
!(await this.delegation?.isActive({ ...delegation, assignmentCode: task.assignmentCode, at: this.now() }, t)))
|
|
238
|
+
continue;
|
|
239
|
+
// Expand only this newly created delegation, never another delegate's tasks.
|
|
240
|
+
const existing = await store.tasks({
|
|
241
|
+
instanceId: task.instanceId,
|
|
242
|
+
assignmentCode: task.assignmentCode,
|
|
243
|
+
round: task.round,
|
|
244
|
+
});
|
|
245
|
+
if (existing.some((other) => other.assigneeId === delegation.delegateId))
|
|
246
|
+
continue;
|
|
247
|
+
const { id: _id, ...input } = task;
|
|
248
|
+
const created = await store.createTasks([
|
|
249
|
+
{
|
|
250
|
+
...input,
|
|
251
|
+
assigneeId: delegation.delegateId,
|
|
252
|
+
onBehalfOfId: delegation.delegatorId,
|
|
253
|
+
delegationId: delegation.delegationId,
|
|
254
|
+
title: `[Delegate] ${task.title}`,
|
|
255
|
+
createdAt: this.now(),
|
|
256
|
+
},
|
|
257
|
+
]);
|
|
258
|
+
await this.notifyTasks(created, t);
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
/** Joins revocation's transaction. CAS and row locks serialize cancellation with responses. */
|
|
263
|
+
async prepareDelegationRevocation(delegationId, tx) {
|
|
264
|
+
await this.store.run(tx, async (store, t) => {
|
|
265
|
+
const tasks = await store.tasks({ delegationId, status: 'OPEN' });
|
|
266
|
+
const ids = [...new Set(tasks.map((task) => task.instanceId))].sort();
|
|
267
|
+
for (const id of ids)
|
|
268
|
+
await this.runtime.get(id, t, { lock: true });
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
async cancelDelegation(delegationId, tx) {
|
|
272
|
+
await this.store.run(tx, async (store) => {
|
|
273
|
+
if (store.cancelDelegation)
|
|
274
|
+
return store.cancelDelegation(delegationId);
|
|
275
|
+
for (const task of await store.tasks({ delegationId, status: 'OPEN' }))
|
|
276
|
+
await store.updateTask(task.id, 'OPEN', { status: 'CANCELLED' });
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
async delegationActive(task, tx) {
|
|
280
|
+
if (!task.delegationId)
|
|
281
|
+
return true;
|
|
282
|
+
return (!!task.onBehalfOfId &&
|
|
283
|
+
!!(await this.delegation?.isActive({
|
|
284
|
+
delegationId: task.delegationId,
|
|
285
|
+
delegatorId: task.onBehalfOfId,
|
|
286
|
+
delegateId: task.assigneeId,
|
|
287
|
+
assignmentCode: task.assignmentCode,
|
|
288
|
+
at: this.now(),
|
|
289
|
+
}, tx)));
|
|
170
290
|
}
|
|
171
291
|
// --- People ------------------------------------------------------------------------------
|
|
172
292
|
/** A person responds to their task. Human interface only (decision 202610-00b3, point 16 by analogy). */
|
|
173
293
|
async respond(input) {
|
|
174
|
-
|
|
294
|
+
const result = await this.store.run(undefined, async (store, tx) => {
|
|
175
295
|
let task = await store.task(input.taskId);
|
|
176
296
|
if (!task || task.assigneeId !== input.userId) {
|
|
177
297
|
throw new plugin_api_1.MechanismError('TASK_NOT_FOUND', 'No such task of yours', 404);
|
|
@@ -182,6 +302,12 @@ let AssignmentService = class AssignmentService {
|
|
|
182
302
|
task = await store.task(input.taskId);
|
|
183
303
|
if (!task || task.assigneeId !== input.userId)
|
|
184
304
|
throw new plugin_api_1.MechanismError('TASK_NOT_FOUND', 'No such task of yours', 404);
|
|
305
|
+
if (!(await this.delegationActive(task, tx))) {
|
|
306
|
+
if (task.status === 'OPEN')
|
|
307
|
+
await store.updateTask(task.id, 'OPEN', { status: 'CANCELLED' });
|
|
308
|
+
// Return the error so cancellation commits before the HTTP/MCP boundary throws it.
|
|
309
|
+
return new plugin_api_1.MechanismError('DELEGATION_ENDED', 'The delegation has ended', 409);
|
|
310
|
+
}
|
|
185
311
|
if (task.status !== 'OPEN') {
|
|
186
312
|
throw new plugin_api_1.MechanismError('TASK_NOT_OPEN', `The task is ${task.status.toLowerCase()}`, 409, 'Nothing to do: someone else decided, or the request moved on');
|
|
187
313
|
}
|
|
@@ -207,14 +333,38 @@ let AssignmentService = class AssignmentService {
|
|
|
207
333
|
assignmentCode: task.assignmentCode,
|
|
208
334
|
round: task.round,
|
|
209
335
|
});
|
|
336
|
+
const voter = task.onBehalfOfId ?? task.assigneeId;
|
|
337
|
+
for (const other of round)
|
|
338
|
+
if (other.id !== task.id &&
|
|
339
|
+
other.status === 'OPEN' &&
|
|
340
|
+
(other.onBehalfOfId ?? other.assigneeId) === voter)
|
|
341
|
+
await store.updateTask(other.id, 'OPEN', { status: 'CLOSED' });
|
|
342
|
+
const voted = new Set(round
|
|
343
|
+
.filter((other) => other.status === 'RESPONDED')
|
|
344
|
+
.map((other) => other.onBehalfOfId ?? other.assigneeId));
|
|
345
|
+
voted.add(voter);
|
|
346
|
+
if (task.onBehalfOfId)
|
|
347
|
+
await this.notifications?.notifyMany([
|
|
348
|
+
{
|
|
349
|
+
recipientUserId: task.onBehalfOfId,
|
|
350
|
+
idempotencyKey: `assignment-response:${task.id}`,
|
|
351
|
+
type: 'assignment.delegated-response',
|
|
352
|
+
title: 'Your delegate responded to an assignment',
|
|
353
|
+
sourceApp: this.appName,
|
|
354
|
+
sourceEntityType: 'AssignmentTask',
|
|
355
|
+
sourceEntityId: task.id,
|
|
356
|
+
targetPath: `/instances/${task.instanceId}`,
|
|
357
|
+
},
|
|
358
|
+
], { tx });
|
|
210
359
|
const completes = spec.policy !== 'JOINT' ||
|
|
211
360
|
response.decisive === true ||
|
|
212
|
-
round.
|
|
361
|
+
round.filter((other) => !other.onBehalfOfId).every((other) => voted.has(other.assigneeId));
|
|
213
362
|
if (!completes)
|
|
214
363
|
return {
|
|
215
364
|
completed: false,
|
|
216
365
|
task: {
|
|
217
366
|
...task,
|
|
367
|
+
actingUserId: input.userId,
|
|
218
368
|
status: 'RESPONDED',
|
|
219
369
|
response: response.key,
|
|
220
370
|
comment: input.comment ?? null,
|
|
@@ -240,12 +390,16 @@ let AssignmentService = class AssignmentService {
|
|
|
240
390
|
type: 'ASSIGNMENT',
|
|
241
391
|
assignmentCode: task.assignmentCode,
|
|
242
392
|
userId: input.userId,
|
|
393
|
+
...(task.onBehalfOfId
|
|
394
|
+
? { actingUserId: input.userId, onBehalfOfId: task.onBehalfOfId }
|
|
395
|
+
: {}),
|
|
243
396
|
},
|
|
244
397
|
}, tx);
|
|
245
398
|
return {
|
|
246
399
|
completed: true,
|
|
247
400
|
task: {
|
|
248
401
|
...task,
|
|
402
|
+
actingUserId: input.userId,
|
|
249
403
|
status: 'RESPONDED',
|
|
250
404
|
response: response.key,
|
|
251
405
|
comment: input.comment ?? null,
|
|
@@ -254,11 +408,18 @@ let AssignmentService = class AssignmentService {
|
|
|
254
408
|
instance: { id: instance.id, state: instance.state, revision: instance.revision },
|
|
255
409
|
};
|
|
256
410
|
});
|
|
411
|
+
if (result instanceof plugin_api_1.MechanismError)
|
|
412
|
+
throw result;
|
|
413
|
+
return result;
|
|
257
414
|
}
|
|
258
415
|
async listMine(userId, status = 'OPEN') {
|
|
259
416
|
return this.store.run(undefined, async (store, tx) => {
|
|
260
417
|
const tasks = await store.tasks({ assigneeId: userId, status });
|
|
261
|
-
|
|
418
|
+
const visible = [];
|
|
419
|
+
for (const task of tasks)
|
|
420
|
+
if (task.status !== 'OPEN' || (await this.delegationActive(task, tx)))
|
|
421
|
+
visible.push(task);
|
|
422
|
+
return this.withNames(await Promise.all(visible.map((task) => this.view(store, task, tx))), tx);
|
|
262
423
|
});
|
|
263
424
|
}
|
|
264
425
|
async getMine(userId, taskId) {
|
|
@@ -266,20 +427,32 @@ let AssignmentService = class AssignmentService {
|
|
|
266
427
|
const task = await store.task(taskId);
|
|
267
428
|
if (!task || task.assigneeId !== userId)
|
|
268
429
|
throw new plugin_api_1.MechanismError('TASK_NOT_FOUND', 'No such task of yours', 404);
|
|
269
|
-
return this.view(store, task, tx);
|
|
430
|
+
return (await this.withNames([await this.view(store, task, tx)], tx))[0];
|
|
270
431
|
});
|
|
271
432
|
}
|
|
272
433
|
/** Every task of an instance, for its history view. */
|
|
273
434
|
async tasksOf(instanceId, tx) {
|
|
274
435
|
return this.store.run(tx, (store) => store.tasks({ instanceId }));
|
|
275
436
|
}
|
|
437
|
+
async withNames(tasks, tx) {
|
|
438
|
+
const ids = [
|
|
439
|
+
...new Set(tasks.flatMap((task) => (task.onBehalfOfId ? [task.onBehalfOfId] : []))),
|
|
440
|
+
];
|
|
441
|
+
const names = new Map(ids.length && this.identity?.findActiveNamesByIds
|
|
442
|
+
? (await this.identity.findActiveNamesByIds(ids, tx)).map((row) => [row.id, row.name])
|
|
443
|
+
: []);
|
|
444
|
+
return tasks.map((task) => task.onBehalfOfId ? { ...task, onBehalfOfName: names.get(task.onBehalfOfId) ?? null } : task);
|
|
445
|
+
}
|
|
276
446
|
async view(store, task, tx) {
|
|
277
447
|
const binding = (await store.bindings(task.instanceId)).find((b) => b.assignmentCode === task.assignmentCode);
|
|
278
448
|
const instance = await this.runtime.get(task.instanceId, tx);
|
|
279
449
|
return {
|
|
280
450
|
...task,
|
|
451
|
+
...(task.status === 'RESPONDED' ? { actingUserId: task.assigneeId } : {}),
|
|
281
452
|
policy: binding?.definition.spec.policy ?? 'ANY_ONE',
|
|
282
|
-
responses: (
|
|
453
|
+
responses: (task.status === 'OPEN' && !(await this.delegationActive(task, tx))
|
|
454
|
+
? []
|
|
455
|
+
: (binding?.definition.spec.responses ?? [])).map(({ key, label }) => ({
|
|
283
456
|
key,
|
|
284
457
|
label,
|
|
285
458
|
})),
|
|
@@ -313,6 +486,10 @@ exports.AssignmentService = AssignmentService = __decorate([
|
|
|
313
486
|
__param(7, (0, common_1.Inject)(exports.ASSIGNMENT_APP_NAME)),
|
|
314
487
|
__param(8, (0, common_1.Optional)()),
|
|
315
488
|
__param(8, (0, common_1.Inject)(plugin_api_1.ORG_DIRECTORY)),
|
|
316
|
-
|
|
489
|
+
__param(9, (0, common_1.Optional)()),
|
|
490
|
+
__param(9, (0, common_1.Inject)(plugin_api_1.DELEGATION_RESOLVER)),
|
|
491
|
+
__param(10, (0, common_1.Optional)()),
|
|
492
|
+
__param(10, (0, common_1.Inject)(plugin_api_1.IDENTITY_STORE)),
|
|
493
|
+
__metadata("design:paramtypes", [Object, Object, Object, state_machine_1.StateMachineReaderGrants, Object, Object, Function, String, Object, Object, Object])
|
|
317
494
|
], AssignmentService);
|
|
318
495
|
//# sourceMappingURL=assignment.service.js.map
|
|
@@ -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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"}
|
package/dist/mcp-tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAczD,qBACa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,iBAAiB;IAE3D,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAczD,qBACa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,iBAAiB;IAE3D,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;CAkDvE"}
|
package/dist/mcp-tools.js
CHANGED
|
@@ -67,6 +67,12 @@ let AssignmentMcpTools = class AssignmentMcpTools {
|
|
|
67
67
|
id: task.id,
|
|
68
68
|
title: wrap(task.title),
|
|
69
69
|
status: task.status,
|
|
70
|
+
...(task.onBehalfOfId
|
|
71
|
+
? {
|
|
72
|
+
onBehalfOfId: task.onBehalfOfId,
|
|
73
|
+
onBehalfOfName: wrap(task.onBehalfOfName ?? null),
|
|
74
|
+
}
|
|
75
|
+
: {}),
|
|
70
76
|
dueAt: task.dueAt ? new Date(task.dueAt).toISOString() : null,
|
|
71
77
|
policy: task.policy,
|
|
72
78
|
responses: task.responses.map((response) => ({
|
package/dist/mcp-tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { type PluginManifestV1 } from '@haneinfo/plugin-api';
|
|
3
3
|
import { AssignmentModule } from './assignment.module';
|
|
4
4
|
/** SHA-256 of `prisma/assignment.prisma` with LF endings; `plugin.spec.ts` recomputes it. */
|
|
5
|
-
export declare const ASSIGNMENT_SCHEMA_DIGEST = "sha256:
|
|
5
|
+
export declare const ASSIGNMENT_SCHEMA_DIGEST = "sha256:bdc427f82abf63268c9952b57c87e00899a9b935bece6a944201250ac77c7aa7";
|
|
6
6
|
export declare const assignmentManifest: PluginManifestV1;
|
|
7
7
|
export declare const assignmentPlugin: import("@haneinfo/plugin-api").DefinedPlugin<unknown, typeof AssignmentModule>;
|
|
8
8
|
export declare function assignment(): import("@haneinfo/plugin-api").DefinedPlugin<unknown, typeof AssignmentModule>;
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,6FAA6F;AAC7F,eAAO,MAAM,wBAAwB,4EACsC,CAAC;AAE5E,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,6FAA6F;AAC7F,eAAO,MAAM,wBAAwB,4EACsC,CAAC;AAE5E,eAAO,MAAM,kBAAkB,EAAE,gBAuEhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,gFAG3B,CAAC;AAEH,wBAAgB,UAAU,mFAEzB;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -7,7 +7,7 @@ const plugin_api_1 = require("@haneinfo/plugin-api");
|
|
|
7
7
|
const assignment_module_1 = require("./assignment.module");
|
|
8
8
|
const mcp_tools_1 = require("./mcp-tools");
|
|
9
9
|
/** SHA-256 of `prisma/assignment.prisma` with LF endings; `plugin.spec.ts` recomputes it. */
|
|
10
|
-
exports.ASSIGNMENT_SCHEMA_DIGEST = 'sha256:
|
|
10
|
+
exports.ASSIGNMENT_SCHEMA_DIGEST = 'sha256:bdc427f82abf63268c9952b57c87e00899a9b935bece6a944201250ac77c7aa7';
|
|
11
11
|
exports.assignmentManifest = {
|
|
12
12
|
schemaVersion: 'haneinfo.plugin/v1',
|
|
13
13
|
id: 'assignment',
|
|
@@ -15,7 +15,7 @@ exports.assignmentManifest = {
|
|
|
15
15
|
cardinality: 'singleton',
|
|
16
16
|
distribution: 'official',
|
|
17
17
|
engine: {
|
|
18
|
-
haneinfoPluginApi: '^1.
|
|
18
|
+
haneinfoPluginApi: '^1.13.0',
|
|
19
19
|
node: '>=22.0.0',
|
|
20
20
|
frameworks: {
|
|
21
21
|
'@nestjs/common': '^11.0.5',
|
|
@@ -34,6 +34,8 @@ exports.assignmentManifest = {
|
|
|
34
34
|
'haneinfo.rbac-policy',
|
|
35
35
|
'haneinfo.notification-inbox',
|
|
36
36
|
'haneinfo.org-directory',
|
|
37
|
+
'haneinfo.delegation-resolver',
|
|
38
|
+
'haneinfo.identity-store',
|
|
37
39
|
],
|
|
38
40
|
facets: {
|
|
39
41
|
backend: {
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAwFtE,gCAEC;AAxFD,qDAA2E;AAC3E,2DAAuD;AACvD,2CAAkD;AAElD,6FAA6F;AAChF,QAAA,wBAAwB,GACnC,yEAAyE,CAAC;AAE/D,QAAA,kBAAkB,GAAqB;IAClD,aAAa,EAAE,oBAAoB;IACnC,EAAE,EAAE,YAAY;IAChB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,UAAU;IACxB,MAAM,EAAE;QACN,iBAAiB,EAAE,SAAS;QAC5B,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE;YACV,gBAAgB,EAAE,SAAS;YAC3B,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,QAAQ;SAC3B;KACF;IACD,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE;QACR,iBAAiB;QACjB,4BAA4B;QAC5B,8BAA8B;QAC9B,gCAAgC;KACjC;IACD,gBAAgB,EAAE;QAChB,sBAAsB;QACtB,6BAA6B;QAC7B,wBAAwB;QACxB,8BAA8B;QAC9B,yBAAyB;KAC1B;IACD,MAAM,EAAE;QACN,OAAO,EAAE;YACP,UAAU,EAAE,6BAA6B;YACzC,UAAU,EAAE,kBAAkB;YAC9B,gBAAgB,EAAE,CAAC,aAAa,CAAC;YACjC,eAAe,EAAE;gBACf;oBACE,IAAI,EAAE,YAAY;oBAClB,aAAa,EAAE,CAAC;oBAChB,UAAU,EAAE,8BAA8B;oBAC1C,WAAW,EAAE,YAAY;iBAC1B;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,+BAAmB,EAAE,cAAc,EAAE,CAAC,6BAA6B,CAAC,EAAE,CAAC;YAC1F,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,mBAAmB;oBACzB,aAAa,EAAE,CAAC;oBAChB,WAAW,EAAE,0EAA0E;iBACxF;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,aAAa,EAAE,CAAC;oBAChB,WAAW,EACT,kFAAkF;iBACrF;aACF;YACD,UAAU,EAAE,kBAAkB;SAC/B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;YAC7C,cAAc,EAAE,0BAA0B;YAC1C,YAAY,EAAE,gCAAwB;SACvC;QACD,WAAW,EAAE;YACX,WAAW,EAAE;gBACX,4BAA4B;gBAC5B,6BAA6B;gBAC7B,+BAA+B;aAChC;SACF;KACF;CACF,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,yBAAY,EAAC;IAC3C,QAAQ,EAAE,0BAAkB;IAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,oCAAgB;CAChC,CAAC,CAAC;AAEH,SAAgB,UAAU;IACxB,OAAO,wBAAgB,CAAC;AAC1B,CAAC;AAED,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA"}
|
|
@@ -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;AAyFjB,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,12 @@ class PrismaTx {
|
|
|
5
5
|
constructor(db) {
|
|
6
6
|
this.db = db;
|
|
7
7
|
}
|
|
8
|
+
async cancelDelegation(delegationId) {
|
|
9
|
+
await this.db.assignmentTask.updateMany({
|
|
10
|
+
where: { delegationId, status: 'OPEN' },
|
|
11
|
+
data: { status: 'CANCELLED' },
|
|
12
|
+
});
|
|
13
|
+
}
|
|
8
14
|
async saveBindings(bindings) {
|
|
9
15
|
if (bindings.length === 0)
|
|
10
16
|
return;
|
package/dist/prisma-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-store.js","sourceRoot":"","sources":["../src/prisma-store.ts"],"names":[],"mappings":"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"}
|
|
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
|
@@ -17,6 +17,8 @@ export interface TaskRecord {
|
|
|
17
17
|
/** Increments each time the instance re-enters the state and the assignment opens again. */
|
|
18
18
|
round: number;
|
|
19
19
|
assigneeId: string;
|
|
20
|
+
onBehalfOfId?: string | null;
|
|
21
|
+
delegationId?: string | null;
|
|
20
22
|
status: TaskStatus;
|
|
21
23
|
title: string;
|
|
22
24
|
response: string | null;
|
|
@@ -35,11 +37,13 @@ export interface AssignmentStoreTx {
|
|
|
35
37
|
assignmentCode?: string;
|
|
36
38
|
round?: number;
|
|
37
39
|
assigneeId?: string;
|
|
40
|
+
delegationId?: string;
|
|
38
41
|
status?: TaskStatus;
|
|
39
42
|
}): Promise<TaskRecord[]>;
|
|
40
43
|
/** Compare-and-set on status; returns false when it changed meanwhile. */
|
|
41
44
|
updateTask(id: string, expectedStatus: TaskStatus, patch: Partial<Pick<TaskRecord, 'status' | 'response' | 'comment' | 'respondedAt'>>): Promise<boolean>;
|
|
42
45
|
lastRound(instanceId: string, assignmentCode: string): Promise<number>;
|
|
46
|
+
cancelDelegation?(delegationId: string): Promise<void>;
|
|
43
47
|
}
|
|
44
48
|
export interface AssignmentStore {
|
|
45
49
|
run<T>(tx: unknown, work: (store: AssignmentStoreTx, tx: unknown) => Promise<T>): Promise<T>;
|
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,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,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;
|
|
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,11 @@ class MemoryTx {
|
|
|
8
8
|
constructor(state) {
|
|
9
9
|
this.state = state;
|
|
10
10
|
}
|
|
11
|
+
async cancelDelegation(delegationId) {
|
|
12
|
+
for (const task of this.state.tasks)
|
|
13
|
+
if (task.delegationId === delegationId && task.status === 'OPEN')
|
|
14
|
+
task.status = 'CANCELLED';
|
|
15
|
+
}
|
|
11
16
|
async saveBindings(bindings) {
|
|
12
17
|
this.state.bindings.push(...copy(bindings));
|
|
13
18
|
}
|
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/dist/testing.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** `@haneinfo/assignment/testing` — the assignment runtime on in-memory stores, attached to a test state machine. */
|
|
2
|
-
import type { DefinitionKindRegistration, NotificationInboxPort, OrgDirectoryPort, PersonResolver, RbacPolicyPort } from '@haneinfo/plugin-api';
|
|
2
|
+
import type { DefinitionKindRegistration, DelegationResolverPort, IdentityStorePort, NotificationInboxPort, OrgDirectoryPort, PersonResolver, RbacPolicyPort } from '@haneinfo/plugin-api';
|
|
3
3
|
import { AssignmentService } from './assignment.service';
|
|
4
4
|
import { InMemoryAssignmentStore } from './store';
|
|
5
5
|
export { InMemoryAssignmentStore } from './store';
|
|
@@ -10,6 +10,8 @@ export declare function createTestAssignmentRuntime(options?: {
|
|
|
10
10
|
notifications?: NotificationInboxPort;
|
|
11
11
|
orgDirectory?: OrgDirectoryPort;
|
|
12
12
|
failureRecipients?: PersonResolver[];
|
|
13
|
+
delegation?: DelegationResolverPort;
|
|
14
|
+
identity?: IdentityStorePort;
|
|
13
15
|
}): {
|
|
14
16
|
assignments: AssignmentService;
|
|
15
17
|
assignmentStore: InMemoryAssignmentStore;
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,qHAAqH;AAErH,OAAO,KAAK,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,2BAA2B,CACzC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,qHAAqH;AAErH,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,2BAA2B,CACzC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACzB;;;;;;;EA0BP"}
|
package/dist/testing.js
CHANGED
|
@@ -17,9 +17,10 @@ function createTestAssignmentRuntime(options = {}) {
|
|
|
17
17
|
clock: options.clock,
|
|
18
18
|
notifications: options.notifications,
|
|
19
19
|
config: { failureRecipients: options.failureRecipients },
|
|
20
|
+
delegation: options.delegation,
|
|
20
21
|
});
|
|
21
22
|
const assignmentStore = new store_1.InMemoryAssignmentStore();
|
|
22
|
-
const assignments = new assignment_service_1.AssignmentService(assignmentStore, base.runtime, base.registry, new state_machine_1.StateMachineReaderGrants(base.store), options.rbac, options.notifications, options.clock, 'test', options.orgDirectory);
|
|
23
|
+
const assignments = new assignment_service_1.AssignmentService(assignmentStore, base.runtime, base.registry, new state_machine_1.StateMachineReaderGrants(base.store), options.rbac, options.notifications, options.clock, 'test', options.orgDirectory, options.delegation, options.identity);
|
|
23
24
|
assignments.onModuleInit();
|
|
24
25
|
return { ...base, assignments, assignmentStore };
|
|
25
26
|
}
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":";AAAA,qHAAqH;;;
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":";AAAA,qHAAqH;;;AAmBrH,kEAoCC;AA5CD,2DAAmE;AACnE,6DAAgF;AAChF,6DAAyD;AACzD,iCAAkD;AAClD,mCAAkD;AAElD,iCAAkD;AAAzC,gHAAA,uBAAuB,OAAA;AAEhC,SAAgB,2BAA2B,CACzC,UASI,EAAE;IAEN,MAAM,IAAI,GAAG,IAAA,uCAA6B,EAAC;QACzC,KAAK,EAAE,CAAC,+BAAwB,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE;QACxD,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,IAAI,+BAAuB,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,sCAAiB,CACvC,eAAe,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,IAAI,wCAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,EACxC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,KAAK,EACb,MAAM,EACN,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,QAAQ,CACjB,CAAC;IACF,WAAW,CAAC,YAAY,EAAE,CAAC;IAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACnD,CAAC"}
|
package/haneinfo.plugin.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"cardinality": "singleton",
|
|
6
6
|
"distribution": "official",
|
|
7
7
|
"engine": {
|
|
8
|
-
"haneinfoPluginApi": "^1.
|
|
8
|
+
"haneinfoPluginApi": "^1.13.0",
|
|
9
9
|
"node": ">=22.0.0",
|
|
10
10
|
"frameworks": {
|
|
11
11
|
"@nestjs/common": "^11.0.5",
|
|
@@ -23,7 +23,9 @@
|
|
|
23
23
|
"optionalRequires": [
|
|
24
24
|
"haneinfo.rbac-policy",
|
|
25
25
|
"haneinfo.notification-inbox",
|
|
26
|
-
"haneinfo.org-directory"
|
|
26
|
+
"haneinfo.org-directory",
|
|
27
|
+
"haneinfo.delegation-resolver",
|
|
28
|
+
"haneinfo.identity-store"
|
|
27
29
|
],
|
|
28
30
|
"facets": {
|
|
29
31
|
"backend": {
|
|
@@ -61,7 +63,7 @@
|
|
|
61
63
|
"prisma": {
|
|
62
64
|
"owns": ["AssignmentBinding", "AssignmentTask"],
|
|
63
65
|
"schemaFragment": "prisma/assignment.prisma",
|
|
64
|
-
"schemaDigest": "sha256:
|
|
66
|
+
"schemaDigest": "sha256:bdc427f82abf63268c9952b57c87e00899a9b935bece6a944201250ac77c7aa7"
|
|
65
67
|
},
|
|
66
68
|
"permissions": {
|
|
67
69
|
"definitions": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haneinfo/assignment",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
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/plugin-api": "1.
|
|
42
|
-
"@haneinfo/form": "0.3.
|
|
41
|
+
"@haneinfo/plugin-api": "1.14.0",
|
|
42
|
+
"@haneinfo/form": "0.3.4"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@haneinfo/common": "^0.3.4",
|
|
46
46
|
"@haneinfo/definition-registry": "^0.1.0",
|
|
47
|
-
"@haneinfo/state-machine": "^0.6.0 || ^0.7.0 || ^0.8.0",
|
|
47
|
+
"@haneinfo/state-machine": "^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.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,9 +64,9 @@
|
|
|
64
64
|
"typescript": "^5.9.3",
|
|
65
65
|
"vitest": "^4.1.11",
|
|
66
66
|
"zod": "^4.4.0",
|
|
67
|
-
"@haneinfo/
|
|
67
|
+
"@haneinfo/definition-registry": "0.1.9",
|
|
68
68
|
"@haneinfo/common": "0.3.4",
|
|
69
|
-
"@haneinfo/
|
|
69
|
+
"@haneinfo/state-machine": "0.10.0",
|
|
70
70
|
"@haneinfo/plugin-host-nest": "2.1.0",
|
|
71
71
|
"@haneinfo/plugin-testkit": "2.3.0"
|
|
72
72
|
},
|
package/prisma/assignment.prisma
CHANGED
|
@@ -17,6 +17,8 @@ model AssignmentTask {
|
|
|
17
17
|
assignmentVersion Int @map("assignment_version")
|
|
18
18
|
round Int
|
|
19
19
|
assigneeId String @map("assignee_id")
|
|
20
|
+
onBehalfOfId String? @map("on_behalf_of_id")
|
|
21
|
+
delegationId String? @map("delegation_id")
|
|
20
22
|
/// OPEN, RESPONDED, CLOSED (decided by someone else) or CANCELLED (the instance left the state).
|
|
21
23
|
status String
|
|
22
24
|
title String
|