@happyvertical/smrt-projects 0.39.4 → 0.39.7
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/AGENTS.md +36 -1
- package/SERVICE_TIME_MIGRATION.md +23 -0
- package/dist/collections/DevelopmentRequestHistories.d.ts +7 -0
- package/dist/collections/DevelopmentRequestHistories.d.ts.map +1 -0
- package/dist/collections/DevelopmentRequests.d.ts +20 -0
- package/dist/collections/DevelopmentRequests.d.ts.map +1 -0
- package/dist/collections/ProjectIntegrationAudits.d.ts +7 -0
- package/dist/collections/ProjectIntegrationAudits.d.ts.map +1 -0
- package/dist/collections/ProjectIntegrations.d.ts +28 -0
- package/dist/collections/ProjectIntegrations.d.ts.map +1 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1673 -33
- package/dist/index.js.map +1 -1
- package/dist/managed-client.d.ts +13 -0
- package/dist/managed-client.d.ts.map +1 -0
- package/dist/manifest.json +4790 -1109
- package/dist/models/DevelopmentRequest.d.ts +35 -0
- package/dist/models/DevelopmentRequest.d.ts.map +1 -0
- package/dist/models/DevelopmentRequestHistory.d.ts +22 -0
- package/dist/models/DevelopmentRequestHistory.d.ts.map +1 -0
- package/dist/models/ProjectIntegration.d.ts +24 -0
- package/dist/models/ProjectIntegration.d.ts.map +1 -0
- package/dist/models/ProjectIntegrationAudit.d.ts +16 -0
- package/dist/models/ProjectIntegrationAudit.d.ts.map +1 -0
- package/dist/models/delivery-control-plane.d.ts +83 -0
- package/dist/models/delivery-control-plane.d.ts.map +1 -0
- package/dist/models/service-evidence.d.ts +79 -0
- package/dist/models/service-evidence.d.ts.map +1 -0
- package/dist/services/assistance-request-service.d.ts +45 -0
- package/dist/services/assistance-request-service.d.ts.map +1 -0
- package/dist/services/delivery-service.d.ts +55 -0
- package/dist/services/delivery-service.d.ts.map +1 -0
- package/dist/services/development-request-service.d.ts +61 -0
- package/dist/services/development-request-service.d.ts.map +1 -0
- package/dist/services/index.d.ts +6 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/service-evidence-service.d.ts +48 -0
- package/dist/services/service-evidence-service.d.ts.map +1 -0
- package/dist/services/subscription-commercial-resolver.d.ts +17 -0
- package/dist/services/subscription-commercial-resolver.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +1823 -148
- package/dist/svelte/AssistanceLauncher.svelte +96 -0
- package/dist/svelte/AssistanceLauncher.svelte.d.ts +12 -0
- package/dist/svelte/AssistanceLauncher.svelte.d.ts.map +1 -0
- package/dist/svelte/DeliveryStatus.svelte +71 -0
- package/dist/svelte/DeliveryStatus.svelte.d.ts +8 -0
- package/dist/svelte/DeliveryStatus.svelte.d.ts.map +1 -0
- package/dist/svelte/DevelopmentBoard.svelte +103 -0
- package/dist/svelte/DevelopmentBoard.svelte.d.ts +10 -0
- package/dist/svelte/DevelopmentBoard.svelte.d.ts.map +1 -0
- package/dist/svelte/DevelopmentRequestDetail.svelte +92 -0
- package/dist/svelte/DevelopmentRequestDetail.svelte.d.ts +9 -0
- package/dist/svelte/DevelopmentRequestDetail.svelte.d.ts.map +1 -0
- package/dist/svelte/PreviewApprovalPanel.svelte +63 -0
- package/dist/svelte/PreviewApprovalPanel.svelte.d.ts +10 -0
- package/dist/svelte/PreviewApprovalPanel.svelte.d.ts.map +1 -0
- package/dist/svelte/ServiceEvidenceList.svelte +103 -0
- package/dist/svelte/ServiceEvidenceList.svelte.d.ts +8 -0
- package/dist/svelte/ServiceEvidenceList.svelte.d.ts.map +1 -0
- package/dist/svelte/components/DevelopmentRequestForm.svelte +70 -0
- package/dist/svelte/components/DevelopmentRequestForm.svelte.d.ts +19 -0
- package/dist/svelte/components/DevelopmentRequestForm.svelte.d.ts.map +1 -0
- package/dist/svelte/components/DevelopmentRequestList.svelte +218 -0
- package/dist/svelte/components/DevelopmentRequestList.svelte.d.ts +22 -0
- package/dist/svelte/components/DevelopmentRequestList.svelte.d.ts.map +1 -0
- package/dist/svelte/components/__tests__/DeliverySurfaces.test.js +98 -0
- package/dist/svelte/components/__tests__/DevelopmentRequest.test.js +52 -0
- package/dist/svelte/delivery-types.d.ts +36 -0
- package/dist/svelte/delivery-types.d.ts.map +1 -0
- package/dist/svelte/delivery-types.js +1 -0
- package/dist/svelte/i18n.d.ts +30 -0
- package/dist/svelte/i18n.d.ts.map +1 -1
- package/dist/svelte/i18n.js +30 -0
- package/dist/svelte/index.d.ts +18 -1
- package/dist/svelte/index.d.ts.map +1 -1
- package/dist/svelte/index.js +18 -1
- package/dist/types.d.ts +79 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +106 -10
- package/dist/ui.js.map +1 -1
- package/package.json +11 -9
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { SmrtObject, SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { DevelopmentRequestEvidence, DevelopmentRequestOrigin, DevelopmentRequestStatus, DevelopmentRequestType, DevelopmentRequestVisibility } from '../types';
|
|
3
|
+
export interface DevelopmentRequestOptions extends SmrtObjectOptions {
|
|
4
|
+
tenantId?: string;
|
|
5
|
+
projectId?: string;
|
|
6
|
+
integrationId?: string;
|
|
7
|
+
requesterId?: string;
|
|
8
|
+
participantId?: string;
|
|
9
|
+
type?: DevelopmentRequestType;
|
|
10
|
+
description?: string;
|
|
11
|
+
evidence?: DevelopmentRequestEvidence[] | string;
|
|
12
|
+
visibility?: DevelopmentRequestVisibility;
|
|
13
|
+
origin?: DevelopmentRequestOrigin;
|
|
14
|
+
discussion?: string;
|
|
15
|
+
status?: DevelopmentRequestStatus;
|
|
16
|
+
}
|
|
17
|
+
export declare class DevelopmentRequest extends SmrtObject {
|
|
18
|
+
tenantId: string;
|
|
19
|
+
projectId: string;
|
|
20
|
+
integrationId: string;
|
|
21
|
+
requesterId: string;
|
|
22
|
+
participantId: string;
|
|
23
|
+
type: DevelopmentRequestType;
|
|
24
|
+
description: string;
|
|
25
|
+
evidence: string;
|
|
26
|
+
visibility: DevelopmentRequestVisibility;
|
|
27
|
+
origin: DevelopmentRequestOrigin;
|
|
28
|
+
discussion: string;
|
|
29
|
+
status: DevelopmentRequestStatus;
|
|
30
|
+
constructor(options?: DevelopmentRequestOptions);
|
|
31
|
+
initialize(): Promise<this>;
|
|
32
|
+
getEvidence(): DevelopmentRequestEvidence[];
|
|
33
|
+
setEvidence(value: DevelopmentRequestEvidence[] | string): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=DevelopmentRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DevelopmentRequest.d.ts","sourceRoot":"","sources":["../../src/models/DevelopmentRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,0BAA0B,EAAE,GAAG,MAAM,CAAC;IACjD,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAuCD,qBASa,kBAAmB,SAAQ,UAAU;IAEhD,QAAQ,EAAE,MAAM,CAAM;IAEtB,SAAS,EAAE,MAAM,CAAM;IAGvB,aAAa,EAAE,MAAM,CAAM;IAE3B,WAAW,EAAE,MAAM,CAAM;IAEzB,aAAa,EAAE,MAAM,CAAM;IAE3B,IAAI,EAAE,sBAAsB,CAAa;IAEzC,WAAW,EAAE,MAAM,CAAM;IAEzB,QAAQ,EAAE,MAAM,CAAQ;IAExB,UAAU,EAAE,4BAA4B,CAAe;IAEvD,MAAM,EAAE,wBAAwB,CAAiB;IAEjD,UAAU,EAAE,MAAM,CAAM;IAExB,MAAM,EAAE,wBAAwB,CAAe;gBAEnC,OAAO,GAAE,yBAA8B;IAoB7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjD,WAAW,IAAI,0BAA0B,EAAE;IAI3C,WAAW,CAAC,KAAK,EAAE,0BAA0B,EAAE,GAAG,MAAM,GAAG,IAAI;CAIhE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SmrtObject, SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { DevelopmentRequestStatus } from '../types';
|
|
3
|
+
export interface DevelopmentRequestHistoryOptions extends SmrtObjectOptions {
|
|
4
|
+
tenantId?: string;
|
|
5
|
+
requestId?: string;
|
|
6
|
+
fromStatus?: string;
|
|
7
|
+
toStatus?: DevelopmentRequestStatus;
|
|
8
|
+
actorType?: 'integration' | 'participant' | 'system';
|
|
9
|
+
actorId?: string;
|
|
10
|
+
note?: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare class DevelopmentRequestHistory extends SmrtObject {
|
|
13
|
+
tenantId: string;
|
|
14
|
+
requestId: string;
|
|
15
|
+
fromStatus: string;
|
|
16
|
+
toStatus: DevelopmentRequestStatus;
|
|
17
|
+
actorType: 'integration' | 'participant' | 'system';
|
|
18
|
+
actorId: string;
|
|
19
|
+
note: string | null;
|
|
20
|
+
constructor(options?: DevelopmentRequestHistoryOptions);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=DevelopmentRequestHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DevelopmentRequestHistory.d.ts","sourceRoot":"","sources":["../../src/models/DevelopmentRequestHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEzD,MAAM,WAAW,gCAAiC,SAAQ,iBAAiB;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,SAAS,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,QAAQ,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBAOa,yBAA0B,SAAQ,UAAU;IAEvD,QAAQ,EAAE,MAAM,CAAM;IAGtB,SAAS,EAAE,MAAM,CAAM;IAEvB,UAAU,EAAE,MAAM,CAAM;IAExB,QAAQ,EAAE,wBAAwB,CAAe;IAEjD,SAAS,EAAE,aAAa,GAAG,aAAa,GAAG,QAAQ,CAAY;IAE/D,OAAO,EAAE,MAAM,CAAM;IAErB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAEf,OAAO,GAAE,gCAAqC;CAU3D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SmrtObject, SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { ProjectIntegrationCapability, ProjectIntegrationStatus } from '../types';
|
|
3
|
+
export interface ProjectIntegrationOptions extends SmrtObjectOptions {
|
|
4
|
+
tenantId?: string;
|
|
5
|
+
projectId?: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
credentialHash?: string;
|
|
8
|
+
capabilities?: ProjectIntegrationCapability[];
|
|
9
|
+
status?: ProjectIntegrationStatus;
|
|
10
|
+
revokedAt?: Date | null;
|
|
11
|
+
}
|
|
12
|
+
export declare class ProjectIntegration extends SmrtObject {
|
|
13
|
+
tenantId: string;
|
|
14
|
+
projectId: string;
|
|
15
|
+
name: string;
|
|
16
|
+
credentialHash: string;
|
|
17
|
+
capabilities: ProjectIntegrationCapability[];
|
|
18
|
+
status: ProjectIntegrationStatus;
|
|
19
|
+
revokedAt: Date | null;
|
|
20
|
+
constructor(options?: ProjectIntegrationOptions);
|
|
21
|
+
hasCapability(capability: ProjectIntegrationCapability): boolean;
|
|
22
|
+
isActive(): boolean;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ProjectIntegration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectIntegration.d.ts","sourceRoot":"","sources":["../../src/models/ProjectIntegration.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,4BAA4B,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,qBAQa,kBAAmB,SAAQ,UAAU;IAEhD,QAAQ,EAAE,MAAM,CAAM;IAEtB,SAAS,EAAE,MAAM,CAAM;IAEvB,IAAI,EAAE,MAAM,CAAM;IAGlB,cAAc,EAAE,MAAM,CAAM;IAE5B,YAAY,EAAE,4BAA4B,EAAE,CAAM;IAElD,MAAM,EAAE,wBAAwB,CAAY;IAE5C,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;gBAElB,OAAO,GAAE,yBAA8B;IAanD,aAAa,CAAC,UAAU,EAAE,4BAA4B,GAAG,OAAO;IAIhE,QAAQ,IAAI,OAAO;CAGpB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SmrtObject, SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { ProjectIntegrationAuditAction } from '../types';
|
|
3
|
+
export interface ProjectIntegrationAuditOptions extends SmrtObjectOptions {
|
|
4
|
+
tenantId?: string;
|
|
5
|
+
integrationId?: string;
|
|
6
|
+
action?: ProjectIntegrationAuditAction;
|
|
7
|
+
note?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export declare class ProjectIntegrationAudit extends SmrtObject {
|
|
10
|
+
tenantId: string;
|
|
11
|
+
integrationId: string;
|
|
12
|
+
action: ProjectIntegrationAuditAction;
|
|
13
|
+
note: string | null;
|
|
14
|
+
constructor(options?: ProjectIntegrationAuditOptions);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ProjectIntegrationAudit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectIntegrationAudit.d.ts","sourceRoot":"","sources":["../../src/models/ProjectIntegrationAudit.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,8BAA+B,SAAQ,iBAAiB;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBAOa,uBAAwB,SAAQ,UAAU;IAErD,QAAQ,EAAE,MAAM,CAAM;IAGtB,aAAa,EAAE,MAAM,CAAM;IAE3B,MAAM,EAAE,6BAA6B,CAAa;IAElD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAEf,OAAO,GAAE,8BAAmC;CAQzD"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { SmrtCollection, SmrtObject } from '@happyvertical/smrt-core';
|
|
2
|
+
import { AssistanceClassification, DeliveryEventType } from '../types.js';
|
|
3
|
+
export declare function parseProjectJson<T>(value: string, fallback: T): T;
|
|
4
|
+
/** Provider-neutral connection from a Development Request to canonical work. */
|
|
5
|
+
export declare class DevelopmentRequestWorkLink extends SmrtObject {
|
|
6
|
+
tenantId: string;
|
|
7
|
+
requestId: string;
|
|
8
|
+
workItemType: string;
|
|
9
|
+
workItemId: string;
|
|
10
|
+
canonicalStatus: string;
|
|
11
|
+
providerRef: string;
|
|
12
|
+
metadata: string;
|
|
13
|
+
lastProjectedAt: Date | null;
|
|
14
|
+
}
|
|
15
|
+
/** Ordered, idempotent delivery update emitted by the control plane. */
|
|
16
|
+
export declare class ProjectDeliveryEvent extends SmrtObject {
|
|
17
|
+
tenantId: string;
|
|
18
|
+
integrationId: string;
|
|
19
|
+
requestId: string;
|
|
20
|
+
idempotencyKey: string;
|
|
21
|
+
sequence: number;
|
|
22
|
+
type: DeliveryEventType;
|
|
23
|
+
payload: string;
|
|
24
|
+
occurredAt: Date;
|
|
25
|
+
deliveredAt: Date | null;
|
|
26
|
+
deliveryAttempts: number;
|
|
27
|
+
lastDeliveryError: string;
|
|
28
|
+
}
|
|
29
|
+
/** Client decision state for one preview produced during delivery. */
|
|
30
|
+
export declare class PreviewApproval extends SmrtObject {
|
|
31
|
+
tenantId: string;
|
|
32
|
+
requestId: string;
|
|
33
|
+
previewId: string;
|
|
34
|
+
previewUrl: string;
|
|
35
|
+
status: 'pending' | 'approved' | 'rejected' | 'stale';
|
|
36
|
+
decidedByRef: string;
|
|
37
|
+
reason: string;
|
|
38
|
+
createdAt: Date;
|
|
39
|
+
decidedAt: Date | null;
|
|
40
|
+
staleAt: Date | null;
|
|
41
|
+
}
|
|
42
|
+
/** Lossless conversational intake before support/development classification. */
|
|
43
|
+
export declare class AssistanceRequest extends SmrtObject {
|
|
44
|
+
tenantId: string;
|
|
45
|
+
integrationId: string;
|
|
46
|
+
requesterId: string;
|
|
47
|
+
subject: string;
|
|
48
|
+
applicationContext: string;
|
|
49
|
+
conversation: string;
|
|
50
|
+
evidence: string;
|
|
51
|
+
classification: AssistanceClassification;
|
|
52
|
+
supportCaseId: string;
|
|
53
|
+
developmentRequestId: string;
|
|
54
|
+
deliveryHandoffLinkedAt: Date | null;
|
|
55
|
+
createdAt: Date;
|
|
56
|
+
}
|
|
57
|
+
/** Append-only explanation of Assistance Request routing decisions. */
|
|
58
|
+
export declare class AssistanceRequestEvent extends SmrtObject {
|
|
59
|
+
tenantId: string;
|
|
60
|
+
assistanceRequestId: string;
|
|
61
|
+
priorClassification: AssistanceClassification;
|
|
62
|
+
resultingClassification: AssistanceClassification;
|
|
63
|
+
actorRef: string;
|
|
64
|
+
reason: string;
|
|
65
|
+
resultingLinks: string;
|
|
66
|
+
occurredAt: Date;
|
|
67
|
+
}
|
|
68
|
+
export declare class DevelopmentRequestWorkLinkCollection extends SmrtCollection<DevelopmentRequestWorkLink> {
|
|
69
|
+
static readonly _itemClass: typeof DevelopmentRequestWorkLink;
|
|
70
|
+
}
|
|
71
|
+
export declare class ProjectDeliveryEventCollection extends SmrtCollection<ProjectDeliveryEvent> {
|
|
72
|
+
static readonly _itemClass: typeof ProjectDeliveryEvent;
|
|
73
|
+
}
|
|
74
|
+
export declare class PreviewApprovalCollection extends SmrtCollection<PreviewApproval> {
|
|
75
|
+
static readonly _itemClass: typeof PreviewApproval;
|
|
76
|
+
}
|
|
77
|
+
export declare class AssistanceRequestCollection extends SmrtCollection<AssistanceRequest> {
|
|
78
|
+
static readonly _itemClass: typeof AssistanceRequest;
|
|
79
|
+
}
|
|
80
|
+
export declare class AssistanceRequestEventCollection extends SmrtCollection<AssistanceRequestEvent> {
|
|
81
|
+
static readonly _itemClass: typeof AssistanceRequestEvent;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=delivery-control-plane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-control-plane.d.ts","sourceRoot":"","sources":["../../src/models/delivery-control-plane.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { SmrtCollection, SmrtObject } from '@happyvertical/smrt-core';
|
|
2
|
+
import { ServiceEvidence, ServiceParticipantKind, ServiceTimeEntrySource, ServiceTimeEntryStatus } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Canonical Professional Service evidence shared by planning, development,
|
|
5
|
+
* and support. Commercial snapshots are deliberately separate models.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ServiceTimeEntry extends SmrtObject {
|
|
8
|
+
tenantId: string | null;
|
|
9
|
+
caseId: string | null;
|
|
10
|
+
workRefType: string | null;
|
|
11
|
+
workRefId: string | null;
|
|
12
|
+
specialistId: string | null;
|
|
13
|
+
participantKind: ServiceParticipantKind;
|
|
14
|
+
participantProfileId: string | null;
|
|
15
|
+
agentRef: string;
|
|
16
|
+
source: ServiceTimeEntrySource;
|
|
17
|
+
description: string;
|
|
18
|
+
startedAt: Date | null;
|
|
19
|
+
endedAt: Date | null;
|
|
20
|
+
durationSeconds: number;
|
|
21
|
+
evidence: string;
|
|
22
|
+
status: ServiceTimeEntryStatus;
|
|
23
|
+
submittedAt: Date | null;
|
|
24
|
+
submittedByProfileId: string | null;
|
|
25
|
+
approvedAt: Date | null;
|
|
26
|
+
approvedByProfileId: string | null;
|
|
27
|
+
approvalPath: string;
|
|
28
|
+
rejectedAt: Date | null;
|
|
29
|
+
rejectedByProfileId: string | null;
|
|
30
|
+
rejectionReason: string;
|
|
31
|
+
correctionOfId: string | null;
|
|
32
|
+
metadata: string;
|
|
33
|
+
getEvidence(): ServiceEvidence[];
|
|
34
|
+
setEvidence(value: ServiceEvidence[]): void;
|
|
35
|
+
getMetadata(): Record<string, unknown>;
|
|
36
|
+
setMetadata(value: Record<string, unknown>): void;
|
|
37
|
+
durationHours(): number;
|
|
38
|
+
initialize(): Promise<this>;
|
|
39
|
+
save(): Promise<this>;
|
|
40
|
+
private readPrior;
|
|
41
|
+
}
|
|
42
|
+
export declare class ServiceChargeSnapshot extends SmrtObject {
|
|
43
|
+
tenantId: string | null;
|
|
44
|
+
timeEntryId: string;
|
|
45
|
+
amount: number;
|
|
46
|
+
currency: string;
|
|
47
|
+
pricingVersion: string;
|
|
48
|
+
strategy: string;
|
|
49
|
+
rateSnapshot: string;
|
|
50
|
+
sourceChargeRef: string;
|
|
51
|
+
createdAt: Date;
|
|
52
|
+
initialize(): Promise<this>;
|
|
53
|
+
save(): Promise<this>;
|
|
54
|
+
}
|
|
55
|
+
export declare class ServiceCompensationSnapshot extends SmrtObject {
|
|
56
|
+
tenantId: string | null;
|
|
57
|
+
timeEntryId: string;
|
|
58
|
+
amount: number;
|
|
59
|
+
currency: string;
|
|
60
|
+
termsVersion: string;
|
|
61
|
+
rateSnapshot: string;
|
|
62
|
+
createdAt: Date;
|
|
63
|
+
initialize(): Promise<this>;
|
|
64
|
+
save(): Promise<this>;
|
|
65
|
+
}
|
|
66
|
+
export declare class ServiceTimeEntryCollection extends SmrtCollection<ServiceTimeEntry> {
|
|
67
|
+
static readonly _itemClass: typeof ServiceTimeEntry;
|
|
68
|
+
forWork(workRefType: string, workRefId: string): Promise<ServiceTimeEntry[]>;
|
|
69
|
+
forCase(caseId: string): Promise<ServiceTimeEntry[]>;
|
|
70
|
+
forSpecialist(specialistId: string): Promise<ServiceTimeEntry[]>;
|
|
71
|
+
pendingApproval(): Promise<ServiceTimeEntry[]>;
|
|
72
|
+
}
|
|
73
|
+
export declare class ServiceChargeSnapshotCollection extends SmrtCollection<ServiceChargeSnapshot> {
|
|
74
|
+
static readonly _itemClass: typeof ServiceChargeSnapshot;
|
|
75
|
+
}
|
|
76
|
+
export declare class ServiceCompensationSnapshotCollection extends SmrtCollection<ServiceCompensationSnapshot> {
|
|
77
|
+
static readonly _itemClass: typeof ServiceCompensationSnapshot;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=service-evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-evidence.d.ts","sourceRoot":"","sources":["../../src/models/service-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { SmrtClassOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { DevelopmentRequestCollection } from '../collections/DevelopmentRequests.js';
|
|
3
|
+
import { ProjectIntegrationCollection } from '../collections/ProjectIntegrations.js';
|
|
4
|
+
import { AssistanceRequest, AssistanceRequestCollection, AssistanceRequestEventCollection } from '../models/delivery-control-plane.js';
|
|
5
|
+
import { ProjectIntegration } from '../models/ProjectIntegration.js';
|
|
6
|
+
import { AssistanceClassification, DevelopmentRequestEvidence, ManagedAssistanceRequestInput } from '../types.js';
|
|
7
|
+
export interface AssistanceSupportPort {
|
|
8
|
+
openOrJoin(input: {
|
|
9
|
+
assistanceRequestId: string;
|
|
10
|
+
tenantId: string;
|
|
11
|
+
projectId: string;
|
|
12
|
+
requesterId: string;
|
|
13
|
+
subject: string;
|
|
14
|
+
conversation: Record<string, unknown>[];
|
|
15
|
+
evidence: DevelopmentRequestEvidence[];
|
|
16
|
+
applicationContext: Record<string, unknown>;
|
|
17
|
+
}): Promise<{
|
|
18
|
+
caseId: string;
|
|
19
|
+
}>;
|
|
20
|
+
/** Implementations must treat this handoff as idempotent. */
|
|
21
|
+
linkDelivery?(input: {
|
|
22
|
+
tenantId: string;
|
|
23
|
+
caseId: string;
|
|
24
|
+
developmentRequestId: string;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export declare class AssistanceRequestService {
|
|
28
|
+
private readonly integrations;
|
|
29
|
+
private readonly development;
|
|
30
|
+
private readonly requests;
|
|
31
|
+
private readonly events;
|
|
32
|
+
private readonly support?;
|
|
33
|
+
constructor(integrations: ProjectIntegrationCollection, development: DevelopmentRequestCollection, requests: AssistanceRequestCollection, events: AssistanceRequestEventCollection, support?: AssistanceSupportPort | undefined);
|
|
34
|
+
static create(options?: SmrtClassOptions, dependencies?: {
|
|
35
|
+
support?: AssistanceSupportPort;
|
|
36
|
+
}): Promise<AssistanceRequestService>;
|
|
37
|
+
createRequest(integration: ProjectIntegration, input: ManagedAssistanceRequestInput): Promise<AssistanceRequest>;
|
|
38
|
+
classify(integration: ProjectIntegration, request: AssistanceRequest, input: {
|
|
39
|
+
classification: Exclude<AssistanceClassification, 'unclassified'>;
|
|
40
|
+
actorRef: string;
|
|
41
|
+
reason: string;
|
|
42
|
+
developmentType?: string;
|
|
43
|
+
}): Promise<AssistanceRequest>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=assistance-request-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistance-request-service.d.ts","sourceRoot":"","sources":["../../src/services/assistance-request-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EACL,KAAK,iBAAiB,EACtB,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,KAAK,EAAE;QAChB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,QAAQ,EAAE,0BAA0B,EAAE,CAAC;QACvC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7C,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,6DAA6D;IAC7D,YAAY,CAAC,CAAC,KAAK,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,oBAAoB,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAJR,YAAY,EAAE,4BAA4B,EAC1C,WAAW,EAAE,4BAA4B,EACzC,QAAQ,EAAE,2BAA2B,EACrC,MAAM,EAAE,gCAAgC,EACxC,OAAO,CAAC,EAAE,qBAAqB,YAAA;WAGrC,MAAM,CACjB,OAAO,GAAE,gBAAqB,EAC9B,YAAY,GAAE;QAAE,OAAO,CAAC,EAAE,qBAAqB,CAAA;KAAO,GACrD,OAAO,CAAC,wBAAwB,CAAC;IAiB9B,aAAa,CACjB,WAAW,EAAE,kBAAkB,EAC/B,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,iBAAiB,CAAC;IA2BvB,QAAQ,CACZ,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE;QACL,cAAc,EAAE,OAAO,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;QAClE,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,iBAAiB,CAAC;CA8G9B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { SmrtClassOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { DevelopmentRequestCollection } from '../collections/DevelopmentRequests.js';
|
|
3
|
+
import { ProjectIntegrationCollection } from '../collections/ProjectIntegrations.js';
|
|
4
|
+
import { PreviewApproval, PreviewApprovalCollection, ProjectDeliveryEvent, ProjectDeliveryEventCollection } from '../models/delivery-control-plane.js';
|
|
5
|
+
import { ProjectIntegration } from '../models/ProjectIntegration.js';
|
|
6
|
+
import { DeliveryEventType } from '../types.js';
|
|
7
|
+
import { DevelopmentWorkAdapter } from './development-request-service.js';
|
|
8
|
+
export interface DeliveryEventSender {
|
|
9
|
+
send(event: ProjectDeliveryEvent): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export interface ApprovalPolicy {
|
|
12
|
+
canApprove(input: {
|
|
13
|
+
integration: ProjectIntegration;
|
|
14
|
+
requestId: string;
|
|
15
|
+
previewId: string;
|
|
16
|
+
}): Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
export declare class ProjectDeliveryService {
|
|
19
|
+
private readonly integrations;
|
|
20
|
+
private readonly requests;
|
|
21
|
+
private readonly events;
|
|
22
|
+
private readonly approvals;
|
|
23
|
+
private readonly workAdapter?;
|
|
24
|
+
private readonly approvalPolicy?;
|
|
25
|
+
constructor(integrations: ProjectIntegrationCollection, requests: DevelopmentRequestCollection, events: ProjectDeliveryEventCollection, approvals: PreviewApprovalCollection, workAdapter?: DevelopmentWorkAdapter | undefined, approvalPolicy?: ApprovalPolicy | undefined);
|
|
26
|
+
static create(options?: SmrtClassOptions, dependencies?: {
|
|
27
|
+
workAdapter?: DevelopmentWorkAdapter;
|
|
28
|
+
approvalPolicy?: ApprovalPolicy;
|
|
29
|
+
}): Promise<ProjectDeliveryService>;
|
|
30
|
+
record(input: {
|
|
31
|
+
integration: ProjectIntegration;
|
|
32
|
+
requestId: string;
|
|
33
|
+
idempotencyKey: string;
|
|
34
|
+
sequence: number;
|
|
35
|
+
type: DeliveryEventType;
|
|
36
|
+
payload: Record<string, unknown>;
|
|
37
|
+
occurredAt?: Date;
|
|
38
|
+
}): Promise<ProjectDeliveryEvent>;
|
|
39
|
+
private applySideEffects;
|
|
40
|
+
listForIntegration(integration: ProjectIntegration, requestId: string): Promise<ProjectDeliveryEvent[]>;
|
|
41
|
+
deliverPending(sender: DeliveryEventSender, tenantId: string, integrationId?: string): Promise<void>;
|
|
42
|
+
replay(sender: DeliveryEventSender, integration: ProjectIntegration, afterSequence?: number): Promise<void>;
|
|
43
|
+
decidePreview(integration: ProjectIntegration, preview: PreviewApproval, input: {
|
|
44
|
+
approved: boolean;
|
|
45
|
+
actorRef: string;
|
|
46
|
+
reason: string;
|
|
47
|
+
}): Promise<PreviewApproval>;
|
|
48
|
+
markPreviewStale(preview: PreviewApproval): Promise<PreviewApproval>;
|
|
49
|
+
private requestForIntegration;
|
|
50
|
+
private isLatestTerminalEvent;
|
|
51
|
+
private upsertPreview;
|
|
52
|
+
}
|
|
53
|
+
export declare function requireIntegrationCapability(integration: ProjectIntegration, capability: string): void;
|
|
54
|
+
export declare function requireActiveIntegrationCapability(integrations: ProjectIntegrationCollection, integration: ProjectIntegration, capability: string): Promise<ProjectIntegration>;
|
|
55
|
+
//# sourceMappingURL=delivery-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-service.d.ts","sourceRoot":"","sources":["../../src/services/delivery-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAErF,OAAO,EACL,KAAK,eAAe,EACpB,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,8BAA8B,EAE/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,KAAK,EAAE;QAChB,WAAW,EAAE,kBAAkB,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB;AAED,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBALf,YAAY,EAAE,4BAA4B,EAC1C,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,8BAA8B,EACtC,SAAS,EAAE,yBAAyB,EACpC,WAAW,CAAC,EAAE,sBAAsB,YAAA,EACpC,cAAc,CAAC,EAAE,cAAc,YAAA;WAGrC,MAAM,CACjB,OAAO,GAAE,gBAAqB,EAC9B,YAAY,GAAE;QACZ,WAAW,CAAC,EAAE,sBAAsB,CAAC;QACrC,cAAc,CAAC,EAAE,cAAc,CAAC;KAC5B,GACL,OAAO,CAAC,sBAAsB,CAAC;IAkB5B,MAAM,CAAC,KAAK,EAAE;QAClB,WAAW,EAAE,kBAAkB,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,iBAAiB,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,UAAU,CAAC,EAAE,IAAI,CAAC;KACnB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA4CnB,gBAAgB;IAuCxB,kBAAkB,CACtB,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAe5B,cAAc,CAClB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IA4BV,MAAM,CACV,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,kBAAkB,EAC/B,aAAa,SAAK,GACjB,OAAO,CAAC,IAAI,CAAC;IAiBV,aAAa,CACjB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO,CAAC,eAAe,CAAC;IAsCrB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAS5D,qBAAqB;YAkBrB,qBAAqB;YAmBrB,aAAa;CA2B5B;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,kBAAkB,EAC/B,UAAU,EAAE,MAAM,GACjB,IAAI,CAKN;AAED,wBAAsB,kCAAkC,CACtD,YAAY,EAAE,4BAA4B,EAC1C,WAAW,EAAE,kBAAkB,EAC/B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAS7B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { SmrtClassOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { DevelopmentRequestCollection } from '../collections/DevelopmentRequests.js';
|
|
3
|
+
import { DevelopmentRequest } from '../models/DevelopmentRequest.js';
|
|
4
|
+
import { DevelopmentRequestWorkLink, DevelopmentRequestWorkLinkCollection } from '../models/delivery-control-plane.js';
|
|
5
|
+
import { DevelopmentTriageDecision } from '../types.js';
|
|
6
|
+
export interface DevelopmentWorkItem {
|
|
7
|
+
type: string;
|
|
8
|
+
id: string;
|
|
9
|
+
canonicalStatus: string;
|
|
10
|
+
providerRef?: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface DevelopmentWorkAdapter {
|
|
14
|
+
createWorkItem(input: {
|
|
15
|
+
request: DevelopmentRequest;
|
|
16
|
+
idempotencyKey: string;
|
|
17
|
+
}): Promise<DevelopmentWorkItem>;
|
|
18
|
+
getWorkItem(link: DevelopmentRequestWorkLink): Promise<DevelopmentWorkItem>;
|
|
19
|
+
requestApproval?(input: {
|
|
20
|
+
request: DevelopmentRequest;
|
|
21
|
+
previewId: string;
|
|
22
|
+
/** Stable across retries; adapters must deduplicate this operation. */
|
|
23
|
+
idempotencyKey: string;
|
|
24
|
+
approved: boolean;
|
|
25
|
+
reason: string;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export interface DevelopmentViewer {
|
|
29
|
+
tenantId: string;
|
|
30
|
+
projectId: string;
|
|
31
|
+
requesterId?: string;
|
|
32
|
+
roles?: Array<'workspace' | 'project_team' | 'internal'>;
|
|
33
|
+
}
|
|
34
|
+
export declare class DevelopmentRequestService {
|
|
35
|
+
private readonly requests;
|
|
36
|
+
private readonly links;
|
|
37
|
+
readonly workAdapter?: DevelopmentWorkAdapter | undefined;
|
|
38
|
+
constructor(requests: DevelopmentRequestCollection, links: DevelopmentRequestWorkLinkCollection, workAdapter?: DevelopmentWorkAdapter | undefined);
|
|
39
|
+
static create(options?: SmrtClassOptions, workAdapter?: DevelopmentWorkAdapter): Promise<DevelopmentRequestService>;
|
|
40
|
+
/** Visibility is evaluated after tenant and project scoping. */
|
|
41
|
+
visibleFor(viewer: DevelopmentViewer): Promise<DevelopmentRequest[]>;
|
|
42
|
+
linksFor(request: DevelopmentRequest): Promise<DevelopmentRequestWorkLink[]>;
|
|
43
|
+
triage(request: DevelopmentRequest, input: {
|
|
44
|
+
decision: DevelopmentTriageDecision;
|
|
45
|
+
reason: string;
|
|
46
|
+
actorRef: string;
|
|
47
|
+
mergeIntoRequestId?: string;
|
|
48
|
+
split?: Array<{
|
|
49
|
+
description: string;
|
|
50
|
+
type?: string;
|
|
51
|
+
}>;
|
|
52
|
+
}): Promise<{
|
|
53
|
+
request: DevelopmentRequest;
|
|
54
|
+
links: DevelopmentRequestWorkLink[];
|
|
55
|
+
splitRequests: DevelopmentRequest[];
|
|
56
|
+
}>;
|
|
57
|
+
syncWorkStatus(link: DevelopmentRequestWorkLink): Promise<DevelopmentRequest>;
|
|
58
|
+
private transition;
|
|
59
|
+
private linkWork;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=development-request-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development-request-service.d.ts","sourceRoot":"","sources":["../../src/services/development-request-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,KAAK,0BAA0B,EAC/B,oCAAoC,EACrC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,KAAK,EAAE;QACpB,OAAO,EAAE,kBAAkB,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjC,WAAW,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5E,eAAe,CAAC,CAAC,KAAK,EAAE;QACtB,OAAO,EAAE,kBAAkB,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,uEAAuE;QACvE,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC;CAC1D;AAED,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,sBAAsB;gBAF5B,QAAQ,EAAE,4BAA4B,EACtC,KAAK,EAAE,oCAAoC,EACnD,WAAW,CAAC,EAAE,sBAAsB,YAAA;WAGlC,MAAM,CACjB,OAAO,GAAE,gBAAqB,EAC9B,WAAW,CAAC,EAAE,sBAAsB,GACnC,OAAO,CAAC,yBAAyB,CAAC;IAQrC,gEAAgE;IAC1D,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwBpE,QAAQ,CACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,0BAA0B,EAAE,CAAC;IASlC,MAAM,CACV,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE;QACL,QAAQ,EAAE,yBAAyB,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvD,GACA,OAAO,CAAC;QACT,OAAO,EAAE,kBAAkB,CAAC;QAC5B,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACpC,aAAa,EAAE,kBAAkB,EAAE,CAAC;KACrC,CAAC;IA8GI,cAAc,CAClB,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,kBAAkB,CAAC;YAgChB,UAAU;YAcV,QAAQ;CAgCvB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './assistance-request-service.js';
|
|
2
|
+
export * from './delivery-service.js';
|
|
3
|
+
export * from './development-request-service.js';
|
|
4
|
+
export * from './service-evidence-service.js';
|
|
5
|
+
export * from './subscription-commercial-resolver.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { SmrtClassOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { ServiceChargeSnapshotCollection, ServiceCompensationSnapshotCollection, ServiceTimeEntry, ServiceTimeEntryCollection } from '../models/service-evidence.js';
|
|
3
|
+
import { ServiceEvidence, ServiceParticipantKind, ServiceTimeEntrySource } from '../types.js';
|
|
4
|
+
export interface RecordServiceTimeInput {
|
|
5
|
+
tenantId?: string | null;
|
|
6
|
+
caseId?: string | null;
|
|
7
|
+
workRefType?: string | null;
|
|
8
|
+
workRefId?: string | null;
|
|
9
|
+
specialistId?: string | null;
|
|
10
|
+
participantKind: ServiceParticipantKind;
|
|
11
|
+
participantProfileId?: string | null;
|
|
12
|
+
agentRef?: string;
|
|
13
|
+
source: ServiceTimeEntrySource;
|
|
14
|
+
description: string;
|
|
15
|
+
startedAt?: Date | null;
|
|
16
|
+
endedAt?: Date | null;
|
|
17
|
+
durationSeconds?: number;
|
|
18
|
+
evidence?: ServiceEvidence[];
|
|
19
|
+
metadata?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface CommercialSnapshot {
|
|
22
|
+
amount: number;
|
|
23
|
+
currency?: string;
|
|
24
|
+
version: string;
|
|
25
|
+
strategy?: string;
|
|
26
|
+
terms: Record<string, unknown>;
|
|
27
|
+
sourceRef?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ServiceCommercialResolver {
|
|
30
|
+
priceClient(entry: ServiceTimeEntry): Promise<CommercialSnapshot>;
|
|
31
|
+
compensateProvider(entry: ServiceTimeEntry): Promise<CommercialSnapshot>;
|
|
32
|
+
}
|
|
33
|
+
export declare class ServiceEvidenceService {
|
|
34
|
+
private readonly entries;
|
|
35
|
+
private readonly charges;
|
|
36
|
+
private readonly compensation;
|
|
37
|
+
private readonly commercial?;
|
|
38
|
+
constructor(entries: ServiceTimeEntryCollection, charges: ServiceChargeSnapshotCollection, compensation: ServiceCompensationSnapshotCollection, commercial?: ServiceCommercialResolver | undefined);
|
|
39
|
+
static create(options?: SmrtClassOptions, commercial?: ServiceCommercialResolver): Promise<ServiceEvidenceService>;
|
|
40
|
+
record(input: RecordServiceTimeInput): Promise<ServiceTimeEntry>;
|
|
41
|
+
submit(entry: ServiceTimeEntry, profileId?: string): Promise<ServiceTimeEntry>;
|
|
42
|
+
approve(entry: ServiceTimeEntry, options: {
|
|
43
|
+
actorProfileId?: string;
|
|
44
|
+
approvalPath: string;
|
|
45
|
+
}): Promise<ServiceTimeEntry>;
|
|
46
|
+
correct(entry: ServiceTimeEntry, input: RecordServiceTimeInput): Promise<ServiceTimeEntry>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=service-evidence-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-evidence-service.d.ts","sourceRoot":"","sources":["../../src/services/service-evidence-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,EACrC,KAAK,gBAAgB,EACrB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,sBAAsB,CAAC;IACxC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClE,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC1E;AAED,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAHX,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,+BAA+B,EACxC,YAAY,EAAE,qCAAqC,EACnD,UAAU,CAAC,EAAE,yBAAyB,YAAA;WAG5C,MAAM,CACjB,OAAO,GAAE,gBAAqB,EAC9B,UAAU,CAAC,EAAE,yBAAyB,GACrC,OAAO,CAAC,sBAAsB,CAAC;IAc5B,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4ChE,MAAM,CACV,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC;IAStB,OAAO,CACX,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACzD,OAAO,CAAC,gBAAgB,CAAC;IAkGtB,OAAO,CACX,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;CAkB7B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SmrtClassOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import { CommercialUsageService } from '@happyvertical/smrt-subscriptions';
|
|
3
|
+
import { ServiceTimeEntry } from '../models/service-evidence.js';
|
|
4
|
+
import { CommercialSnapshot, ServiceCommercialResolver } from './service-evidence-service.js';
|
|
5
|
+
export interface ProviderCompensationResolver {
|
|
6
|
+
compensate(entry: ServiceTimeEntry): Promise<CommercialSnapshot>;
|
|
7
|
+
}
|
|
8
|
+
/** Bridges shared Professional Service evidence to #1925's effective pricing. */
|
|
9
|
+
export declare class SubscriptionServiceCommercialResolver implements ServiceCommercialResolver {
|
|
10
|
+
private readonly usage;
|
|
11
|
+
private readonly provider;
|
|
12
|
+
constructor(usage: CommercialUsageService, provider: ProviderCompensationResolver);
|
|
13
|
+
static create(options: SmrtClassOptions, provider: ProviderCompensationResolver): Promise<SubscriptionServiceCommercialResolver>;
|
|
14
|
+
priceClient(entry: ServiceTimeEntry): Promise<CommercialSnapshot>;
|
|
15
|
+
compensateProvider(entry: ServiceTimeEntry): Promise<CommercialSnapshot>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=subscription-commercial-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription-commercial-resolver.d.ts","sourceRoot":"","sources":["../../src/services/subscription-commercial-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClE;AAED,iFAAiF;AACjF,qBAAa,qCACX,YAAW,yBAAyB;IAGlC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,EAAE,4BAA4B;WAG5C,MAAM,CACjB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAAC,qCAAqC,CAAC;IAO3C,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+CvE,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGzE"}
|