@sparkleideas/claims 3.0.0-alpha.8-patch.16 → 3.0.0-alpha.8-patch.18

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.
Files changed (69) hide show
  1. package/package.json +2 -2
  2. package/dist/api/cli-commands.d.ts +0 -84
  3. package/dist/api/cli-commands.d.ts.map +0 -1
  4. package/dist/api/cli-commands.js +0 -1223
  5. package/dist/api/cli-commands.js.map +0 -1
  6. package/dist/api/cli-types.d.ts +0 -82
  7. package/dist/api/cli-types.d.ts.map +0 -1
  8. package/dist/api/cli-types.js +0 -87
  9. package/dist/api/cli-types.js.map +0 -1
  10. package/dist/api/index.d.ts +0 -9
  11. package/dist/api/index.d.ts.map +0 -1
  12. package/dist/api/index.js +0 -11
  13. package/dist/api/index.js.map +0 -1
  14. package/dist/api/mcp-tools.d.ts +0 -376
  15. package/dist/api/mcp-tools.d.ts.map +0 -1
  16. package/dist/api/mcp-tools.js +0 -1409
  17. package/dist/api/mcp-tools.js.map +0 -1
  18. package/dist/application/claim-service.d.ts +0 -99
  19. package/dist/application/claim-service.d.ts.map +0 -1
  20. package/dist/application/claim-service.js +0 -440
  21. package/dist/application/claim-service.js.map +0 -1
  22. package/dist/application/index.d.ts +0 -15
  23. package/dist/application/index.d.ts.map +0 -1
  24. package/dist/application/index.js +0 -17
  25. package/dist/application/index.js.map +0 -1
  26. package/dist/application/load-balancer.d.ts +0 -353
  27. package/dist/application/load-balancer.d.ts.map +0 -1
  28. package/dist/application/load-balancer.js +0 -430
  29. package/dist/application/load-balancer.js.map +0 -1
  30. package/dist/application/work-stealing-service.d.ts +0 -149
  31. package/dist/application/work-stealing-service.d.ts.map +0 -1
  32. package/dist/application/work-stealing-service.js +0 -604
  33. package/dist/application/work-stealing-service.js.map +0 -1
  34. package/dist/domain/events.d.ts +0 -308
  35. package/dist/domain/events.d.ts.map +0 -1
  36. package/dist/domain/events.js +0 -241
  37. package/dist/domain/events.js.map +0 -1
  38. package/dist/domain/index.d.ts +0 -16
  39. package/dist/domain/index.d.ts.map +0 -1
  40. package/dist/domain/index.js +0 -34
  41. package/dist/domain/index.js.map +0 -1
  42. package/dist/domain/repositories.d.ts +0 -154
  43. package/dist/domain/repositories.d.ts.map +0 -1
  44. package/dist/domain/repositories.js +0 -9
  45. package/dist/domain/repositories.js.map +0 -1
  46. package/dist/domain/rules.d.ts +0 -105
  47. package/dist/domain/rules.d.ts.map +0 -1
  48. package/dist/domain/rules.js +0 -348
  49. package/dist/domain/rules.js.map +0 -1
  50. package/dist/domain/types.d.ts +0 -578
  51. package/dist/domain/types.d.ts.map +0 -1
  52. package/dist/domain/types.js +0 -99
  53. package/dist/domain/types.js.map +0 -1
  54. package/dist/index.d.ts +0 -33
  55. package/dist/index.d.ts.map +0 -1
  56. package/dist/index.js +0 -51
  57. package/dist/index.js.map +0 -1
  58. package/dist/infrastructure/claim-repository.d.ts +0 -46
  59. package/dist/infrastructure/claim-repository.d.ts.map +0 -1
  60. package/dist/infrastructure/claim-repository.js +0 -274
  61. package/dist/infrastructure/claim-repository.js.map +0 -1
  62. package/dist/infrastructure/event-store.d.ts +0 -62
  63. package/dist/infrastructure/event-store.d.ts.map +0 -1
  64. package/dist/infrastructure/event-store.js +0 -189
  65. package/dist/infrastructure/event-store.js.map +0 -1
  66. package/dist/infrastructure/index.d.ts +0 -10
  67. package/dist/infrastructure/index.d.ts.map +0 -1
  68. package/dist/infrastructure/index.js +0 -12
  69. package/dist/infrastructure/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,33 +0,0 @@
1
- /**
2
- * @sparkleideas/claims (ADR-016)
3
- *
4
- * Issue claiming and handoff management for human and agent collaboration.
5
- *
6
- * Features:
7
- * - Issue claiming and releasing
8
- * - Human-to-agent and agent-to-agent handoffs
9
- * - Status tracking and updates (active, paused, handoff-pending, review-requested, blocked, stealable, completed)
10
- * - Auto-management (expiration, auto-assignment)
11
- * - Work stealing with contest windows
12
- * - Load balancing and swarm rebalancing
13
- * - Full event sourcing (ADR-007)
14
- *
15
- * MCP Tools (17 total):
16
- * - Core Claiming (7): claim, release, handoff, status_update, list_available, list_mine, board
17
- * - Work Stealing (4): mark_stealable, steal, get_stealable, contest_steal
18
- * - Load Balancing (3): agent_load_info, swarm_rebalance, swarm_load_overview
19
- * - Additional (3): claim_history, claim_metrics, claim_config
20
- *
21
- * ADR-016 Types:
22
- * - ClaimStatus: active | paused | handoff-pending | review-requested | blocked | stealable | completed
23
- * - ClaimantType: human | agent
24
- * - StealReason: timeout | overloaded | blocked | voluntary | rebalancing | abandoned | priority-change
25
- * - HandoffReason: capacity | expertise | shift-change | escalation | voluntary | rebalancing
26
- *
27
- * @module v3/claims
28
- */
29
- export * from './domain/index.js';
30
- export * from './application/index.js';
31
- export * from './infrastructure/index.js';
32
- export { claimsTools, coreClaimingTools, workStealingTools, loadBalancingTools, additionalClaimsTools, issueClaimTool, issueReleaseTool, issueHandoffTool, issueStatusUpdateTool, issueListAvailableTool, issueListMineTool, issueBoardTool, issueMarkStealableTool, issueStealTool, issueGetStealableTool, issueContestStealTool, agentLoadInfoTool, swarmRebalanceTool, swarmLoadOverviewTool, claimHistoryTool, claimMetricsTool, claimConfigTool, registerClaimsTools, getClaimsToolsByCategory, getClaimsToolByName, } from './api/mcp-tools.js';
33
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAEL,WAAW,EAGX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EAGrB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EAGd,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EAGrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EAGrB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAGf,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
package/dist/index.js DELETED
@@ -1,51 +0,0 @@
1
- /**
2
- * @sparkleideas/claims (ADR-016)
3
- *
4
- * Issue claiming and handoff management for human and agent collaboration.
5
- *
6
- * Features:
7
- * - Issue claiming and releasing
8
- * - Human-to-agent and agent-to-agent handoffs
9
- * - Status tracking and updates (active, paused, handoff-pending, review-requested, blocked, stealable, completed)
10
- * - Auto-management (expiration, auto-assignment)
11
- * - Work stealing with contest windows
12
- * - Load balancing and swarm rebalancing
13
- * - Full event sourcing (ADR-007)
14
- *
15
- * MCP Tools (17 total):
16
- * - Core Claiming (7): claim, release, handoff, status_update, list_available, list_mine, board
17
- * - Work Stealing (4): mark_stealable, steal, get_stealable, contest_steal
18
- * - Load Balancing (3): agent_load_info, swarm_rebalance, swarm_load_overview
19
- * - Additional (3): claim_history, claim_metrics, claim_config
20
- *
21
- * ADR-016 Types:
22
- * - ClaimStatus: active | paused | handoff-pending | review-requested | blocked | stealable | completed
23
- * - ClaimantType: human | agent
24
- * - StealReason: timeout | overloaded | blocked | voluntary | rebalancing | abandoned | priority-change
25
- * - HandoffReason: capacity | expertise | shift-change | escalation | voluntary | rebalancing
26
- *
27
- * @module v3/claims
28
- */
29
- // Domain layer - Types, Events, Rules, Repositories
30
- export * from './domain/index.js';
31
- // Application layer - Services
32
- export * from './application/index.js';
33
- // Infrastructure layer - Persistence
34
- export * from './infrastructure/index.js';
35
- // API layer - MCP Tools
36
- export {
37
- // All tools collection
38
- claimsTools,
39
- // Tool categories
40
- coreClaimingTools, workStealingTools, loadBalancingTools, additionalClaimsTools,
41
- // Core Claiming Tools (7)
42
- issueClaimTool, issueReleaseTool, issueHandoffTool, issueStatusUpdateTool, issueListAvailableTool, issueListMineTool, issueBoardTool,
43
- // Work Stealing Tools (4)
44
- issueMarkStealableTool, issueStealTool, issueGetStealableTool, issueContestStealTool,
45
- // Load Balancing Tools (3)
46
- agentLoadInfoTool, swarmRebalanceTool, swarmLoadOverviewTool,
47
- // Additional Tools (3)
48
- claimHistoryTool, claimMetricsTool, claimConfigTool,
49
- // Utility functions
50
- registerClaimsTools, getClaimsToolsByCategory, getClaimsToolByName, } from './api/mcp-tools.js';
51
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,oDAAoD;AACpD,cAAc,mBAAmB,CAAC;AAElC,+BAA+B;AAC/B,cAAc,wBAAwB,CAAC;AAEvC,qCAAqC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,wBAAwB;AACxB,OAAO;AACL,uBAAuB;AACvB,WAAW;AAEX,kBAAkB;AAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB;AAErB,0BAA0B;AAC1B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc;AAEd,0BAA0B;AAC1B,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,qBAAqB;AAErB,2BAA2B;AAC3B,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB;AAErB,uBAAuB;AACvB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe;AAEf,oBAAoB;AACpB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
@@ -1,46 +0,0 @@
1
- /**
2
- * @sparkleideas/claims - Claim Repository Implementation
3
- * SQLite-based persistence for claims (ADR-016)
4
- *
5
- * @module v3/claims/infrastructure/claim-repository
6
- */
7
- import { ClaimId, IssueId, Claimant, ClaimStatus, IssueClaim, IssueClaimWithStealing, AgentType, ClaimQueryOptions, ClaimStatistics } from '../domain/types.js';
8
- import { IClaimRepository } from '../domain/repositories.js';
9
- import { IIssueClaimRepository } from '../domain/types.js';
10
- /**
11
- * In-memory implementation of the claim repository
12
- * Suitable for development and testing
13
- */
14
- export declare class InMemoryClaimRepository implements IClaimRepository, IIssueClaimRepository {
15
- private claims;
16
- private issueIndex;
17
- private claimantIndex;
18
- initialize(): Promise<void>;
19
- shutdown(): Promise<void>;
20
- save(claim: IssueClaim | IssueClaimWithStealing): Promise<void>;
21
- update(claim: IssueClaimWithStealing): Promise<void>;
22
- findById(claimId: ClaimId): Promise<IssueClaimWithStealing | null>;
23
- findByIssueId(issueId: IssueId, repository?: string): Promise<IssueClaimWithStealing | null>;
24
- findByClaimant(claimant: Claimant): Promise<IssueClaim[]>;
25
- findByAgentId(agentId: string): Promise<IssueClaimWithStealing[]>;
26
- findByStatus(status: ClaimStatus): Promise<IssueClaim[]>;
27
- findStealable(agentType?: AgentType): Promise<IssueClaimWithStealing[]>;
28
- findContested(): Promise<IssueClaimWithStealing[]>;
29
- findAll(): Promise<IssueClaimWithStealing[]>;
30
- delete(claimId: ClaimId): Promise<void>;
31
- findActiveClaims(): Promise<IssueClaim[]>;
32
- findStaleClaims(staleSince: Date): Promise<IssueClaim[]>;
33
- findClaimsWithPendingHandoffs(): Promise<IssueClaim[]>;
34
- countByClaimant(claimantId: string): Promise<number>;
35
- countByAgentId(agentId: string): Promise<number>;
36
- query(options: ClaimQueryOptions): Promise<IssueClaimWithStealing[]>;
37
- getStatistics(): Promise<ClaimStatistics>;
38
- private getIssueKey;
39
- private isActiveStatus;
40
- private ensureFullClaim;
41
- }
42
- /**
43
- * Create a new claim repository
44
- */
45
- export declare function createClaimRepository(): InMemoryClaimRepository;
46
- //# sourceMappingURL=claim-repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claim-repository.d.ts","sourceRoot":"","sources":["../../src/infrastructure/claim-repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,SAAS,EAGT,iBAAiB,EACjB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAM3D;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB,EAAE,qBAAqB;IACrF,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,aAAa,CAAwC;IAEvD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAUzB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/D,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAIlE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAe5F,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIzD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IASjE,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIxD,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAUvE,aAAa,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAMlD,OAAO,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAI5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvC,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAMzC,eAAe,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IASxD,6BAA6B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAMtD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAShD,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAmFpE,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IA+D/C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;CAOxB;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,uBAAuB,CAE/D"}
@@ -1,274 +0,0 @@
1
- /**
2
- * @sparkleideas/claims - Claim Repository Implementation
3
- * SQLite-based persistence for claims (ADR-016)
4
- *
5
- * @module v3/claims/infrastructure/claim-repository
6
- */
7
- // =============================================================================
8
- // In-Memory Claim Repository (Default Implementation)
9
- // =============================================================================
10
- /**
11
- * In-memory implementation of the claim repository
12
- * Suitable for development and testing
13
- */
14
- export class InMemoryClaimRepository {
15
- claims = new Map();
16
- issueIndex = new Map(); // issueId:repo -> claimId
17
- claimantIndex = new Map(); // claimantId -> claimIds
18
- async initialize() {
19
- // No initialization needed for in-memory store
20
- }
21
- async shutdown() {
22
- this.claims.clear();
23
- this.issueIndex.clear();
24
- this.claimantIndex.clear();
25
- }
26
- // ==========================================================================
27
- // CRUD Operations
28
- // ==========================================================================
29
- async save(claim) {
30
- const fullClaim = this.ensureFullClaim(claim);
31
- this.claims.set(claim.id, fullClaim);
32
- // Update indexes
33
- const issueKey = this.getIssueKey(claim.issueId, claim.repository ?? '');
34
- this.issueIndex.set(issueKey, claim.id);
35
- const claimantId = claim.claimant.id;
36
- if (!this.claimantIndex.has(claimantId)) {
37
- this.claimantIndex.set(claimantId, new Set());
38
- }
39
- this.claimantIndex.get(claimantId).add(claim.id);
40
- }
41
- async update(claim) {
42
- await this.save(claim);
43
- }
44
- async findById(claimId) {
45
- return this.claims.get(claimId) ?? null;
46
- }
47
- async findByIssueId(issueId, repository) {
48
- const issueKey = this.getIssueKey(issueId, repository ?? '');
49
- const claimId = this.issueIndex.get(issueKey);
50
- if (!claimId)
51
- return null;
52
- const claim = this.claims.get(claimId);
53
- if (!claim)
54
- return null;
55
- // Return only if claim is active
56
- if (this.isActiveStatus(claim.status)) {
57
- return claim;
58
- }
59
- return null;
60
- }
61
- async findByClaimant(claimant) {
62
- return this.findByAgentId(claimant.id);
63
- }
64
- async findByAgentId(agentId) {
65
- const claimIds = this.claimantIndex.get(agentId);
66
- if (!claimIds)
67
- return [];
68
- return Array.from(claimIds)
69
- .map((id) => this.claims.get(id))
70
- .filter((c) => c !== undefined);
71
- }
72
- async findByStatus(status) {
73
- return Array.from(this.claims.values()).filter((c) => c.status === status);
74
- }
75
- async findStealable(agentType) {
76
- return Array.from(this.claims.values()).filter((c) => {
77
- if (c.status !== 'stealable')
78
- return false;
79
- if (!c.stealInfo)
80
- return true;
81
- if (!agentType)
82
- return true;
83
- if (!c.stealInfo.allowedStealerTypes)
84
- return true;
85
- return c.stealInfo.allowedStealerTypes.includes(agentType);
86
- });
87
- }
88
- async findContested() {
89
- return Array.from(this.claims.values()).filter((c) => c.contestInfo && !c.contestInfo.resolution);
90
- }
91
- async findAll() {
92
- return Array.from(this.claims.values());
93
- }
94
- async delete(claimId) {
95
- const claim = this.claims.get(claimId);
96
- if (claim) {
97
- // Remove from indexes
98
- const issueKey = this.getIssueKey(claim.issueId, claim.repository ?? '');
99
- this.issueIndex.delete(issueKey);
100
- const claimantId = claim.claimant.id;
101
- const claimantClaims = this.claimantIndex.get(claimantId);
102
- if (claimantClaims) {
103
- claimantClaims.delete(claimId);
104
- if (claimantClaims.size === 0) {
105
- this.claimantIndex.delete(claimantId);
106
- }
107
- }
108
- this.claims.delete(claimId);
109
- }
110
- }
111
- // ==========================================================================
112
- // Query Operations
113
- // ==========================================================================
114
- async findActiveClaims() {
115
- return Array.from(this.claims.values()).filter((c) => this.isActiveStatus(c.status));
116
- }
117
- async findStaleClaims(staleSince) {
118
- const staleTimestamp = staleSince.getTime();
119
- return Array.from(this.claims.values()).filter((c) => this.isActiveStatus(c.status) &&
120
- c.lastActivityAt.getTime() < staleTimestamp);
121
- }
122
- async findClaimsWithPendingHandoffs() {
123
- return Array.from(this.claims.values()).filter((c) => c.status === 'pending_handoff');
124
- }
125
- async countByClaimant(claimantId) {
126
- return this.claimantIndex.get(claimantId)?.size ?? 0;
127
- }
128
- async countByAgentId(agentId) {
129
- const claims = await this.findByAgentId(agentId);
130
- return claims.filter((c) => this.isActiveStatus(c.status)).length;
131
- }
132
- // ==========================================================================
133
- // Extended Query Operations (ADR-016)
134
- // ==========================================================================
135
- async query(options) {
136
- let results = Array.from(this.claims.values());
137
- // Apply filters
138
- if (options.claimantId) {
139
- results = results.filter((c) => c.claimant.id === options.claimantId);
140
- }
141
- if (options.claimantType) {
142
- results = results.filter((c) => c.claimant.type === options.claimantType);
143
- }
144
- if (options.status) {
145
- const statuses = Array.isArray(options.status) ? options.status : [options.status];
146
- results = results.filter((c) => statuses.includes(c.status));
147
- }
148
- if (options.repository) {
149
- results = results.filter((c) => c.repository === options.repository);
150
- }
151
- if (options.issueId) {
152
- results = results.filter((c) => c.issueId === options.issueId);
153
- }
154
- if (options.stealableOnly) {
155
- results = results.filter((c) => c.status === 'stealable');
156
- }
157
- if (options.blockedOnly) {
158
- results = results.filter((c) => c.blockedReason !== undefined);
159
- }
160
- if (options.createdAfter) {
161
- results = results.filter((c) => c.claimedAt.getTime() >= options.createdAfter);
162
- }
163
- if (options.createdBefore) {
164
- results = results.filter((c) => c.claimedAt.getTime() <= options.createdBefore);
165
- }
166
- if (options.updatedAfter) {
167
- results = results.filter((c) => c.lastActivityAt.getTime() >= options.updatedAfter);
168
- }
169
- // Apply sorting
170
- if (options.sortBy) {
171
- results.sort((a, b) => {
172
- let aVal, bVal;
173
- switch (options.sortBy) {
174
- case 'claimedAt':
175
- aVal = a.claimedAt.getTime();
176
- bVal = b.claimedAt.getTime();
177
- break;
178
- case 'updatedAt':
179
- aVal = a.lastActivityAt.getTime();
180
- bVal = b.lastActivityAt.getTime();
181
- break;
182
- case 'progress':
183
- aVal = a.progress;
184
- bVal = b.progress;
185
- break;
186
- default:
187
- return 0;
188
- }
189
- return options.sortDirection === 'desc' ? bVal - aVal : aVal - bVal;
190
- });
191
- }
192
- // Apply pagination
193
- if (options.offset) {
194
- results = results.slice(options.offset);
195
- }
196
- if (options.limit) {
197
- results = results.slice(0, options.limit);
198
- }
199
- return results;
200
- }
201
- async getStatistics() {
202
- const claims = Array.from(this.claims.values());
203
- const byStatus = {
204
- active: 0,
205
- paused: 0,
206
- 'handoff-pending': 0,
207
- 'review-requested': 0,
208
- blocked: 0,
209
- stealable: 0,
210
- completed: 0,
211
- };
212
- const byClaimantType = {
213
- human: 0,
214
- agent: 0,
215
- };
216
- const byRepository = {};
217
- let totalDuration = 0;
218
- let completedCount = 0;
219
- let totalProgress = 0;
220
- const now = Date.now();
221
- const last24h = now - 24 * 60 * 60 * 1000;
222
- for (const claim of claims) {
223
- byStatus[claim.status] = (byStatus[claim.status] ?? 0) + 1;
224
- byClaimantType[claim.claimant.type] = (byClaimantType[claim.claimant.type] ?? 0) + 1;
225
- const repo = claim.repository ?? 'unknown';
226
- byRepository[repo] = (byRepository[repo] ?? 0) + 1;
227
- totalProgress += claim.progress;
228
- if (claim.status === 'completed') {
229
- completedCount++;
230
- const duration = claim.lastActivityAt.getTime() - claim.claimedAt.getTime();
231
- totalDuration += duration;
232
- }
233
- }
234
- const completedLast24h = claims.filter((c) => c.status === 'completed' && c.lastActivityAt.getTime() >= last24h).length;
235
- return {
236
- totalClaims: claims.length,
237
- byStatus: byStatus,
238
- byPriority: { critical: 0, high: 0, medium: 0, low: 0 },
239
- byClaimantType: byClaimantType,
240
- avgDurationMs: completedCount > 0 ? totalDuration / completedCount : 0,
241
- avgProgress: claims.length > 0 ? totalProgress / claims.length : 0,
242
- activeSteals: claims.filter((c) => c.status === 'stealable').length,
243
- pendingHandoffs: claims.filter((c) => c.status === 'pending_handoff').length,
244
- completedLast24h,
245
- byRepository,
246
- };
247
- }
248
- // ==========================================================================
249
- // Helper Methods
250
- // ==========================================================================
251
- getIssueKey(issueId, repository) {
252
- return `${repository}:${issueId}`;
253
- }
254
- isActiveStatus(status) {
255
- return ['active', 'paused', 'blocked', 'pending_handoff', 'in_review', 'stealable'].includes(status);
256
- }
257
- ensureFullClaim(claim) {
258
- const fullClaim = claim;
259
- if (fullClaim.progress === undefined) {
260
- fullClaim.progress = 0;
261
- }
262
- return fullClaim;
263
- }
264
- }
265
- // =============================================================================
266
- // Factory Function
267
- // =============================================================================
268
- /**
269
- * Create a new claim repository
270
- */
271
- export function createClaimRepository() {
272
- return new InMemoryClaimRepository();
273
- }
274
- //# sourceMappingURL=claim-repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claim-repository.js","sourceRoot":"","sources":["../../src/infrastructure/claim-repository.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- /**
2
- * @sparkleideas/claims - Event Store Implementation
3
- * Event sourcing storage for claims (ADR-007, ADR-016)
4
- *
5
- * @module v3/claims/infrastructure/event-store
6
- */
7
- import { ClaimId, IssueId } from '../domain/types.js';
8
- import { ClaimDomainEvent, AllExtendedClaimEvents, ClaimEventType, ExtendedClaimEventType } from '../domain/events.js';
9
- import { IClaimEventStore } from '../domain/repositories.js';
10
- export interface EventFilter {
11
- aggregateId?: string;
12
- eventTypes?: (ClaimEventType | ExtendedClaimEventType)[];
13
- fromTimestamp?: number;
14
- toTimestamp?: number;
15
- fromVersion?: number;
16
- toVersion?: number;
17
- limit?: number;
18
- offset?: number;
19
- }
20
- export interface EventSubscription {
21
- id: string;
22
- eventTypes: (ClaimEventType | ExtendedClaimEventType)[];
23
- handler: (event: AllExtendedClaimEvents) => void | Promise<void>;
24
- }
25
- /**
26
- * In-memory implementation of the event store
27
- * Suitable for development and testing
28
- */
29
- export declare class InMemoryClaimEventStore implements IClaimEventStore {
30
- private events;
31
- private aggregateVersions;
32
- private subscriptions;
33
- private nextSubscriptionId;
34
- initialize(): Promise<void>;
35
- shutdown(): Promise<void>;
36
- append(event: ClaimDomainEvent): Promise<void>;
37
- appendBatch(events: ClaimDomainEvent[]): Promise<void>;
38
- getEvents(claimId: ClaimId, fromVersion?: number): Promise<ClaimDomainEvent[]>;
39
- getEventsByType(type: string): Promise<ClaimDomainEvent[]>;
40
- getEventsByIssueId(issueId: IssueId): Promise<ClaimDomainEvent[]>;
41
- query(filter: EventFilter): Promise<AllExtendedClaimEvents[]>;
42
- subscribe(eventTypes: (ClaimEventType | ExtendedClaimEventType)[], handler: (event: AllExtendedClaimEvents) => void | Promise<void>): () => void;
43
- subscribeAll(handler: (event: AllExtendedClaimEvents) => void | Promise<void>): () => void;
44
- private notifySubscribers;
45
- getAggregateVersion(aggregateId: string): Promise<number>;
46
- getAggregateState<T>(aggregateId: string, reducer: (state: T, event: AllExtendedClaimEvents) => T, initialState: T): Promise<T>;
47
- private snapshots;
48
- saveSnapshot<T>(aggregateId: string, state: T, version: number): Promise<void>;
49
- getSnapshot<T>(aggregateId: string): Promise<{
50
- state: T;
51
- version: number;
52
- } | null>;
53
- getStateFromSnapshot<T>(aggregateId: string, reducer: (state: T, event: AllExtendedClaimEvents) => T, initialState: T): Promise<T>;
54
- getEventCount(): Promise<number>;
55
- getEventCountByType(): Promise<Record<string, number>>;
56
- getAggregateCount(): Promise<number>;
57
- }
58
- /**
59
- * Create a new event store
60
- */
61
- export declare function createClaimEventStore(): InMemoryClaimEventStore;
62
- //# sourceMappingURL=event-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../../src/infrastructure/event-store.ts"],"names":[],"mappings":"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"}