@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 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYxB"}
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,qBAca,gBAAgB;CAAG"}
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,6DAAyD;AACzD,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;AAgBM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAd5B,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,4CAAoB,CAAC;QACnC,SAAS,EAAE;YACT,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"}
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,EAEL,KAAK,sBAAsB,EAG3B,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,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;IAqBxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IA5BnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgD;IAEhF,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAcrC;gBAG2C,KAAK,EAAE,eAAe,EACjB,OAAO,EAAE,uBAAuB,EAClC,QAAQ,EAAE,sBAAsB,EAC3B,YAAY,EAAE,wBAAwB,EACvC,IAAI,CAAC,EAAE,cAAc,YAAA,EACd,aAAa,CAAC,EAAE,qBAAqB,YAAA,EACxD,KAAK,CAAC,EAAE,MAAM,IAAI,EACE,OAAO,GAAE,MAAc,EAC7B,YAAY,CAAC,EAAE,gBAAgB,YAAA;IAKrF,YAAY;YAME,GAAG;YAaH,YAAY;YA0CZ,UAAU;YAmBV,IAAI;IAkElB,yGAAyG;IACnG,OAAO,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgHrF,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAkB,GAChD,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAO1B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS1E,uDAAuD;IACjD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO;YAIhC,IAAI;CA4BnB"}
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;IAqBxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IA9BhE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgD;IAEhF,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAcrC;gBAG2C,KAAK,EAAE,eAAe,EACjB,OAAO,EAAE,uBAAuB,EAClC,QAAQ,EAAE,sBAAsB,EAC3B,YAAY,EAAE,wBAAwB,EACvC,IAAI,CAAC,EAAE,cAAc,YAAA,EACd,aAAa,CAAC,EAAE,qBAAqB,YAAA,EACxD,KAAK,CAAC,EAAE,MAAM,IAAI,EACE,OAAO,GAAE,MAAc,EAC7B,YAAY,CAAC,EAAE,gBAAgB,YAAA,EACzB,UAAU,CAAC,EAAE,sBAAsB,YAAA,EACxC,QAAQ,CAAC,EAAE,iBAAiB,YAAA;IAKnF,YAAY;YAWE,GAAG;YAaH,YAAY;YA0CZ,UAAU;YAmBV,IAAI;YA8CJ,WAAW;YAyBX,iBAAiB;IAgD/B,iFAAiF;IAC3E,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO;IAuCjE,+FAA+F;IACzF,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO;IAQ7D,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO;YAQ1C,gBAAgB;IAmB9B,yGAAyG;IACnG,OAAO,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2JrF,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAkB,GAChD,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAa1B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAW1E,uDAAuD;IACjD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO;YAIhC,SAAS;YAcT,IAAI;CAgCnB"}
@@ -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 tasks = await store.createTasks(resolution.userIds.map((assigneeId) => ({
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.readerGrants.grantAssigned(instance.id, tasks.map((task) => task.assigneeId), tx);
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
- await this.runtime.emit({
161
- name: 'assignment.opened',
162
- instanceId: instance.id,
163
- payload: {
164
- assignmentCode: binding.assignmentCode,
165
- round,
166
- dueAt: dueAt?.toISOString() ?? null,
167
- assigneeIds: resolution.userIds,
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
- return this.store.run(undefined, async (store, tx) => {
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.every((other) => other.id === task.id || other.status === 'RESPONDED');
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
- return Promise.all(tasks.map((task) => this.view(store, task, tx)));
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: (binding?.definition.spec.responses ?? []).map(({ key, label }) => ({
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
- __metadata("design:paramtypes", [Object, Object, Object, state_machine_1.StateMachineReaderGrants, Object, Object, Function, String, Object])
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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"}
@@ -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;CA4CvE"}
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) => ({
@@ -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:9f959ee518aac39217503bc666d06ec4aec444dadeb47a9204fd19425f6108d0";
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>;
@@ -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,gBAqEhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,gFAG3B,CAAC;AAEH,wBAAgB,UAAU,mFAEzB;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
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:9f959ee518aac39217503bc666d06ec4aec444dadeb47a9204fd19425f6108d0';
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.7.0',
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: {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAsFtE,gCAEC;AAtFD,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,QAAQ;QAC3B,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;KACzB;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
+ {"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;AAkFjB,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"}
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"}
@@ -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;
@@ -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":";;;AA8BA,MAAM,QAAQ;IACZ,YAA6B,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAAG,CAAC;IAE3C,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACzC,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;YACtC,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;YACvC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAyB;QAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;YACzC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC/B,GAAG,OAAO;gBACV,UAAU,EAAE,OAAO,CAAC,UAA+B;aACpD,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAkB;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,GAAG;YACN,UAAU,EAAE,GAAG,CAAC,UAAgD;SACjE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA+B;QAC/C,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,MAAiD;QACrD,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;YACrC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAC5F,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CACd,EAAU,EACV,cAA0B,EAC1B,KAAqD;QAErD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;YACxD,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;YACrC,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,cAAsB;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE;YACrC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAa,qBAAqB;IAChC,YAA6B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEhD,GAAG,CAAI,EAAW,EAAE,IAA2D;QAC7E,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,OAAQ,IAAI,CAAC,MAA8B,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,CAClE,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CACnC,CAAC;IACJ,CAAC;CACF;AATD,sDASC"}
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>;
@@ -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;CACxE;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;AA+DD,oEAAoE;AACpE,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,KAAK,CAAuD;IAE9D,GAAG,CAAC,CAAC,EACT,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC;CAUd"}
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":"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"}
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;
@@ -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;CACjC;;;;;;;EAuBP"}
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":";AAAA,qHAAqH;;;AAiBrH,kEA+BC;AAvCD,2DAAmE;AACnE,6DAAgF;AAChF,6DAAyD;AACzD,iCAAkD;AAClD,mCAAkD;AAElD,iCAAkD;AAAzC,gHAAA,uBAAuB,OAAA;AAEhC,SAAgB,2BAA2B,CACzC,UAOI,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;KACzD,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,CACrB,CAAC;IACF,WAAW,CAAC,YAAY,EAAE,CAAC;IAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACnD,CAAC"}
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"}
@@ -5,7 +5,7 @@
5
5
  "cardinality": "singleton",
6
6
  "distribution": "official",
7
7
  "engine": {
8
- "haneinfoPluginApi": "^1.7.0",
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:9f959ee518aac39217503bc666d06ec4aec444dadeb47a9204fd19425f6108d0"
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.4.2",
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.12.0",
42
- "@haneinfo/form": "0.3.2"
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/state-machine": "0.8.0",
67
+ "@haneinfo/definition-registry": "0.1.9",
68
68
  "@haneinfo/common": "0.3.4",
69
- "@haneinfo/definition-registry": "0.1.7",
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
  },
@@ -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