@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.
Files changed (83) hide show
  1. package/AGENTS.md +36 -1
  2. package/SERVICE_TIME_MIGRATION.md +23 -0
  3. package/dist/collections/DevelopmentRequestHistories.d.ts +7 -0
  4. package/dist/collections/DevelopmentRequestHistories.d.ts.map +1 -0
  5. package/dist/collections/DevelopmentRequests.d.ts +20 -0
  6. package/dist/collections/DevelopmentRequests.d.ts.map +1 -0
  7. package/dist/collections/ProjectIntegrationAudits.d.ts +7 -0
  8. package/dist/collections/ProjectIntegrationAudits.d.ts.map +1 -0
  9. package/dist/collections/ProjectIntegrations.d.ts +28 -0
  10. package/dist/collections/ProjectIntegrations.d.ts.map +1 -0
  11. package/dist/index.d.ts +13 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1673 -33
  14. package/dist/index.js.map +1 -1
  15. package/dist/managed-client.d.ts +13 -0
  16. package/dist/managed-client.d.ts.map +1 -0
  17. package/dist/manifest.json +4790 -1109
  18. package/dist/models/DevelopmentRequest.d.ts +35 -0
  19. package/dist/models/DevelopmentRequest.d.ts.map +1 -0
  20. package/dist/models/DevelopmentRequestHistory.d.ts +22 -0
  21. package/dist/models/DevelopmentRequestHistory.d.ts.map +1 -0
  22. package/dist/models/ProjectIntegration.d.ts +24 -0
  23. package/dist/models/ProjectIntegration.d.ts.map +1 -0
  24. package/dist/models/ProjectIntegrationAudit.d.ts +16 -0
  25. package/dist/models/ProjectIntegrationAudit.d.ts.map +1 -0
  26. package/dist/models/delivery-control-plane.d.ts +83 -0
  27. package/dist/models/delivery-control-plane.d.ts.map +1 -0
  28. package/dist/models/service-evidence.d.ts +79 -0
  29. package/dist/models/service-evidence.d.ts.map +1 -0
  30. package/dist/services/assistance-request-service.d.ts +45 -0
  31. package/dist/services/assistance-request-service.d.ts.map +1 -0
  32. package/dist/services/delivery-service.d.ts +55 -0
  33. package/dist/services/delivery-service.d.ts.map +1 -0
  34. package/dist/services/development-request-service.d.ts +61 -0
  35. package/dist/services/development-request-service.d.ts.map +1 -0
  36. package/dist/services/index.d.ts +6 -0
  37. package/dist/services/index.d.ts.map +1 -0
  38. package/dist/services/service-evidence-service.d.ts +48 -0
  39. package/dist/services/service-evidence-service.d.ts.map +1 -0
  40. package/dist/services/subscription-commercial-resolver.d.ts +17 -0
  41. package/dist/services/subscription-commercial-resolver.d.ts.map +1 -0
  42. package/dist/smrt-knowledge.json +1823 -148
  43. package/dist/svelte/AssistanceLauncher.svelte +96 -0
  44. package/dist/svelte/AssistanceLauncher.svelte.d.ts +12 -0
  45. package/dist/svelte/AssistanceLauncher.svelte.d.ts.map +1 -0
  46. package/dist/svelte/DeliveryStatus.svelte +71 -0
  47. package/dist/svelte/DeliveryStatus.svelte.d.ts +8 -0
  48. package/dist/svelte/DeliveryStatus.svelte.d.ts.map +1 -0
  49. package/dist/svelte/DevelopmentBoard.svelte +103 -0
  50. package/dist/svelte/DevelopmentBoard.svelte.d.ts +10 -0
  51. package/dist/svelte/DevelopmentBoard.svelte.d.ts.map +1 -0
  52. package/dist/svelte/DevelopmentRequestDetail.svelte +92 -0
  53. package/dist/svelte/DevelopmentRequestDetail.svelte.d.ts +9 -0
  54. package/dist/svelte/DevelopmentRequestDetail.svelte.d.ts.map +1 -0
  55. package/dist/svelte/PreviewApprovalPanel.svelte +63 -0
  56. package/dist/svelte/PreviewApprovalPanel.svelte.d.ts +10 -0
  57. package/dist/svelte/PreviewApprovalPanel.svelte.d.ts.map +1 -0
  58. package/dist/svelte/ServiceEvidenceList.svelte +103 -0
  59. package/dist/svelte/ServiceEvidenceList.svelte.d.ts +8 -0
  60. package/dist/svelte/ServiceEvidenceList.svelte.d.ts.map +1 -0
  61. package/dist/svelte/components/DevelopmentRequestForm.svelte +70 -0
  62. package/dist/svelte/components/DevelopmentRequestForm.svelte.d.ts +19 -0
  63. package/dist/svelte/components/DevelopmentRequestForm.svelte.d.ts.map +1 -0
  64. package/dist/svelte/components/DevelopmentRequestList.svelte +218 -0
  65. package/dist/svelte/components/DevelopmentRequestList.svelte.d.ts +22 -0
  66. package/dist/svelte/components/DevelopmentRequestList.svelte.d.ts.map +1 -0
  67. package/dist/svelte/components/__tests__/DeliverySurfaces.test.js +98 -0
  68. package/dist/svelte/components/__tests__/DevelopmentRequest.test.js +52 -0
  69. package/dist/svelte/delivery-types.d.ts +36 -0
  70. package/dist/svelte/delivery-types.d.ts.map +1 -0
  71. package/dist/svelte/delivery-types.js +1 -0
  72. package/dist/svelte/i18n.d.ts +30 -0
  73. package/dist/svelte/i18n.d.ts.map +1 -1
  74. package/dist/svelte/i18n.js +30 -0
  75. package/dist/svelte/index.d.ts +18 -1
  76. package/dist/svelte/index.d.ts.map +1 -1
  77. package/dist/svelte/index.js +18 -1
  78. package/dist/types.d.ts +79 -0
  79. package/dist/types.d.ts.map +1 -1
  80. package/dist/ui.d.ts.map +1 -1
  81. package/dist/ui.js +106 -10
  82. package/dist/ui.js.map +1 -1
  83. package/package.json +11 -9
@@ -8,20 +8,37 @@
8
8
  */
9
9
  import { ModuleUIRegistry } from '@happyvertical/smrt-ui/registry';
10
10
  import { PROJECTS_MODULE_META } from '../ui.js';
11
+ import AssistanceLauncher from './AssistanceLauncher.svelte';
11
12
  // Import components
12
13
  import ApprovalActions from './components/ApprovalActions.svelte';
13
14
  import BulkActions from './components/BulkActions.svelte';
15
+ import DevelopmentRequestForm from './components/DevelopmentRequestForm.svelte';
16
+ import DevelopmentRequestList from './components/DevelopmentRequestList.svelte';
14
17
  import DurationDisplay from './components/DurationDisplay.svelte';
15
18
  import RejectDialog from './components/RejectDialog.svelte';
16
19
  import TimeEntryCard from './components/TimeEntryCard.svelte';
17
20
  import TimeEntryList from './components/TimeEntryList.svelte';
18
21
  import TimeSummary from './components/TimeSummary.svelte';
22
+ import DeliveryStatus from './DeliveryStatus.svelte';
23
+ import DevelopmentBoard from './DevelopmentBoard.svelte';
24
+ import DevelopmentRequestDetail from './DevelopmentRequestDetail.svelte';
25
+ import PreviewApprovalPanel from './PreviewApprovalPanel.svelte';
26
+ import ServiceEvidenceList from './ServiceEvidenceList.svelte';
19
27
  // Export components
20
- export { ApprovalActions, BulkActions, DurationDisplay, RejectDialog, TimeEntryCard, TimeEntryList, TimeSummary, };
28
+ export { ApprovalActions, AssistanceLauncher, BulkActions, DeliveryStatus, DevelopmentBoard, DevelopmentRequestDetail, DevelopmentRequestForm, DevelopmentRequestList, DurationDisplay, PreviewApprovalPanel, RejectDialog, ServiceEvidenceList, TimeEntryCard, TimeEntryList, TimeSummary, };
29
+ export * from './delivery-types.js';
21
30
  // Export types and utilities
22
31
  export { formatCurrency, formatDate, formatHours, formatHoursHHMM, statusColors, } from './utils.js';
23
32
  // Auto-register with ModuleUIRegistry
24
33
  ModuleUIRegistry.registerModule(PROJECTS_MODULE_META);
34
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'development-board', DevelopmentBoard);
35
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'delivery-status', DeliveryStatus);
36
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'preview-approval', PreviewApprovalPanel);
37
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'assistance-launcher', AssistanceLauncher);
38
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'service-evidence-list', ServiceEvidenceList);
39
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'development-request-form', DevelopmentRequestForm);
40
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'development-request-list', DevelopmentRequestList);
41
+ ModuleUIRegistry.register('@happyvertical/smrt-projects', 'development-request-detail', DevelopmentRequestDetail);
25
42
  ModuleUIRegistry.register('@happyvertical/smrt-projects', 'time-entry-card', TimeEntryCard);
26
43
  ModuleUIRegistry.register('@happyvertical/smrt-projects', 'time-entry-list', TimeEntryList);
27
44
  ModuleUIRegistry.register('@happyvertical/smrt-projects', 'time-summary', TimeSummary);
package/dist/types.d.ts CHANGED
@@ -51,4 +51,83 @@ export interface SyncStatus {
51
51
  syncError?: string;
52
52
  syncedFields: string[];
53
53
  }
54
+ /**
55
+ * Managed application capability keys for project integrations.
56
+ */
57
+ export type ProjectIntegrationCapability = 'requests:create' | 'requests:read-own' | 'delivery:write' | 'delivery:read' | 'previews:approve' | 'assistance:create' | (string & {});
58
+ /**
59
+ * Provisioned managed-application integration lifecycle.
60
+ */
61
+ export type ProjectIntegrationStatus = 'active' | 'revoked';
62
+ /**
63
+ * Audit events emitted for managed-application integrations.
64
+ */
65
+ export type ProjectIntegrationAuditAction = 'created' | 'rotated' | 'revoked';
66
+ /**
67
+ * Supported development request categories. Open string union so apps can add
68
+ * narrower taxonomy without waiting for a package release.
69
+ */
70
+ export type DevelopmentRequestType = 'bug' | 'feature' | 'task' | (string & {});
71
+ /**
72
+ * Request visibility as shown back to the managed application's user.
73
+ */
74
+ export type DevelopmentRequestVisibility = 'requester' | 'workspace' | 'public' | 'project_team' | 'internal';
75
+ /**
76
+ * Request origin marker.
77
+ */
78
+ export type DevelopmentRequestOrigin = 'managed-app' | (string & {});
79
+ /**
80
+ * Request lifecycle status.
81
+ */
82
+ export type DevelopmentRequestStatus = 'submitted' | 'triaged' | 'planned' | 'in_progress' | 'completed' | 'declined';
83
+ /**
84
+ * One evidence attachment linked from a request.
85
+ */
86
+ export interface DevelopmentRequestEvidence {
87
+ url: string;
88
+ label?: string;
89
+ }
90
+ /**
91
+ * Input accepted by the managed integration server client when creating a
92
+ * request on behalf of an app-scoped requester.
93
+ */
94
+ export interface ManagedDevelopmentRequestCreateInput {
95
+ requesterId: string;
96
+ participantId?: string;
97
+ type: DevelopmentRequestType;
98
+ description: string;
99
+ evidence?: DevelopmentRequestEvidence[];
100
+ visibility?: DevelopmentRequestVisibility;
101
+ origin?: DevelopmentRequestOrigin;
102
+ discussion?: string;
103
+ }
104
+ /**
105
+ * Actor metadata captured for a request lifecycle transition.
106
+ */
107
+ export interface DevelopmentRequestTransitionInput {
108
+ status: DevelopmentRequestStatus;
109
+ actorType: 'integration' | 'participant' | 'system';
110
+ actorId?: string;
111
+ note?: string;
112
+ }
113
+ export type DevelopmentTriageDecision = 'accept' | 'decline' | 'merge' | 'split';
114
+ export type DeliveryEventType = 'work_linked' | 'branch' | 'pull_request' | 'ci' | 'preview' | 'approval' | 'deployment' | 'completed' | 'rejected';
115
+ export type AssistanceClassification = 'unclassified' | 'support' | 'development' | 'both';
116
+ export type ServiceTimeEntrySource = 'timer' | 'manual' | 'import' | 'agent';
117
+ export type ServiceTimeEntryStatus = 'draft' | 'submitted' | 'approved' | 'rejected' | 'corrected';
118
+ export type ServiceParticipantKind = 'human' | 'agent';
119
+ export interface ServiceEvidence {
120
+ kind: string;
121
+ ref?: string;
122
+ summary?: string;
123
+ capturedAt?: string;
124
+ [key: string]: unknown;
125
+ }
126
+ export interface ManagedAssistanceRequestInput {
127
+ requesterId: string;
128
+ subject: string;
129
+ conversation: Record<string, unknown>[];
130
+ applicationContext?: Record<string, unknown>;
131
+ evidence?: DevelopmentRequestEvidence[];
132
+ }
54
133
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,KAAK,IAAI,YAAY,EACrB,WAAW,IAAI,kBAAkB,EACjC,QAAQ,EACR,WAAW,EACX,OAAO,IAAI,UAAU,EACrB,aAAa,EACb,WAAW,EACX,MAAM,IAAI,aAAa,GACxB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,MAAM,EACN,OAAO,IAAI,UAAU,EACrB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,KAAK,IAAI,QAAQ,EACjB,KAAK,IAAI,QAAQ,EACjB,WAAW,EACX,WAAW,IAAI,cAAc,EAC7B,UAAU,IAAI,aAAa,EAC3B,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,IAAI,GACL,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,OAAO,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,KAAK,CAAC,EAAE,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAgE1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAclC,CAAC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAwI1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,cA8ClC,CAAC"}
package/dist/ui.js CHANGED
@@ -1,12 +1,84 @@
1
1
  //#region src/ui.ts
2
2
  var PROJECTS_UI_SLOTS = {
3
+ "development-request-form": {
4
+ id: "development-request-form",
5
+ label: "Development Request Form",
6
+ description: "Reusable managed-application request submission form",
7
+ icon: "send",
8
+ category: "form",
9
+ order: 1,
10
+ propsInterface: "DevelopmentRequestFormProps"
11
+ },
12
+ "development-request-list": {
13
+ id: "development-request-list",
14
+ label: "Development Request List",
15
+ description: "Requester-facing list of managed development requests",
16
+ icon: "list",
17
+ category: "list",
18
+ order: 2,
19
+ propsInterface: "DevelopmentRequestListProps"
20
+ },
21
+ "development-request-detail": {
22
+ id: "development-request-detail",
23
+ label: "Development Request Detail",
24
+ description: "Provider-neutral request detail and delivery timeline",
25
+ icon: "file-text",
26
+ category: "display",
27
+ order: 3,
28
+ propsInterface: "DevelopmentRequestDetailProps"
29
+ },
30
+ "development-board": {
31
+ id: "development-board",
32
+ label: "Development Board",
33
+ description: "Visibility-filtered projection of connected delivery work",
34
+ icon: "columns",
35
+ category: "display",
36
+ order: 4,
37
+ propsInterface: "DevelopmentBoardProps"
38
+ },
39
+ "delivery-status": {
40
+ id: "delivery-status",
41
+ label: "Delivery Status",
42
+ description: "Ordered timeline of delivery outcomes",
43
+ icon: "activity",
44
+ category: "display",
45
+ order: 5,
46
+ propsInterface: "DeliveryStatusProps"
47
+ },
48
+ "preview-approval": {
49
+ id: "preview-approval",
50
+ label: "Preview Approval",
51
+ description: "Approve or reject a managed delivery preview",
52
+ icon: "eye",
53
+ category: "action",
54
+ order: 6,
55
+ propsInterface: "PreviewApprovalPanelProps"
56
+ },
57
+ "assistance-launcher": {
58
+ id: "assistance-launcher",
59
+ label: "Assistance Launcher",
60
+ description: "Open a contextual support or development conversation",
61
+ icon: "message-circle",
62
+ category: "form",
63
+ order: 7,
64
+ propsInterface: "AssistanceLauncherProps"
65
+ },
66
+ "service-evidence-list": {
67
+ id: "service-evidence-list",
68
+ label: "Service Evidence List",
69
+ description: "Shared service duration, charge, and compensation evidence",
70
+ icon: "receipt",
71
+ category: "display",
72
+ order: 8,
73
+ propsInterface: "ServiceEvidenceListProps"
74
+ },
3
75
  "time-entry-card": {
4
76
  id: "time-entry-card",
5
77
  label: "Time Entry Card",
6
78
  description: "Card component for displaying time entries",
7
79
  icon: "clock",
8
80
  category: "display",
9
- order: 1,
81
+ order: 3,
10
82
  propsInterface: "TimeEntryCardProps"
11
83
  },
12
84
  "time-entry-list": {
@@ -15,7 +87,7 @@ var PROJECTS_UI_SLOTS = {
15
87
  description: "List of time entries with optional selection",
16
88
  icon: "list",
17
89
  category: "list",
18
- order: 2,
90
+ order: 4,
19
91
  propsInterface: "TimeEntryListProps"
20
92
  },
21
93
  "time-summary": {
@@ -24,7 +96,7 @@ var PROJECTS_UI_SLOTS = {
24
96
  description: "Summary statistics for time entries",
25
97
  icon: "chart",
26
98
  category: "display",
27
- order: 3,
99
+ order: 5,
28
100
  propsInterface: "TimeSummaryProps"
29
101
  },
30
102
  "duration-display": {
@@ -33,7 +105,7 @@ var PROJECTS_UI_SLOTS = {
33
105
  description: "Formats hours for display in decimal or HH:MM format",
34
106
  icon: "timer",
35
107
  category: "display",
36
- order: 4,
108
+ order: 6,
37
109
  propsInterface: "DurationDisplayProps"
38
110
  },
39
111
  "approval-actions": {
@@ -42,7 +114,7 @@ var PROJECTS_UI_SLOTS = {
42
114
  description: "Status-based action buttons for approval workflow",
43
115
  icon: "check",
44
116
  category: "action",
45
- order: 5,
117
+ order: 7,
46
118
  propsInterface: "ApprovalActionsProps"
47
119
  },
48
120
  "bulk-actions": {
@@ -51,7 +123,7 @@ var PROJECTS_UI_SLOTS = {
51
123
  description: "Action bar for bulk operations on selected items",
52
124
  icon: "select-all",
53
125
  category: "action",
54
- order: 6,
126
+ order: 8,
55
127
  propsInterface: "BulkActionsProps"
56
128
  },
57
129
  "reject-dialog": {
@@ -60,14 +132,14 @@ var PROJECTS_UI_SLOTS = {
60
132
  description: "Modal dialog for rejecting with a reason",
61
133
  icon: "x-circle",
62
134
  category: "form",
63
- order: 7,
135
+ order: 9,
64
136
  propsInterface: "RejectDialogProps"
65
137
  }
66
138
  };
67
139
  var PROJECTS_MODULE_META = {
68
140
  name: "@happyvertical/smrt-projects",
69
141
  displayName: "Projects",
70
- description: "Provider-agnostic project management with time tracking",
142
+ description: "Provider-agnostic project management with managed-app request intake and time tracking",
71
143
  uiSlots: PROJECTS_UI_SLOTS,
72
144
  models: [
73
145
  "Repository",
@@ -75,7 +147,19 @@ var PROJECTS_MODULE_META = {
75
147
  "PullRequest",
76
148
  "Project",
77
149
  "Comment",
78
- "Label"
150
+ "Label",
151
+ "ProjectIntegration",
152
+ "ProjectIntegrationAudit",
153
+ "DevelopmentRequest",
154
+ "DevelopmentRequestHistory",
155
+ "DevelopmentRequestWorkLink",
156
+ "ProjectDeliveryEvent",
157
+ "PreviewApproval",
158
+ "AssistanceRequest",
159
+ "AssistanceRequestEvent",
160
+ "ServiceTimeEntry",
161
+ "ServiceChargeSnapshot",
162
+ "ServiceCompensationSnapshot"
79
163
  ],
80
164
  collections: [
81
165
  "RepositoryCollection",
@@ -83,7 +167,19 @@ var PROJECTS_MODULE_META = {
83
167
  "PullRequestCollection",
84
168
  "ProjectCollection",
85
169
  "CommentCollection",
86
- "LabelCollection"
170
+ "LabelCollection",
171
+ "ProjectIntegrationCollection",
172
+ "ProjectIntegrationAuditCollection",
173
+ "DevelopmentRequestCollection",
174
+ "DevelopmentRequestHistoryCollection",
175
+ "DevelopmentRequestWorkLinkCollection",
176
+ "ProjectDeliveryEventCollection",
177
+ "PreviewApprovalCollection",
178
+ "AssistanceRequestCollection",
179
+ "AssistanceRequestEventCollection",
180
+ "ServiceTimeEntryCollection",
181
+ "ServiceChargeSnapshotCollection",
182
+ "ServiceCompensationSnapshotCollection"
87
183
  ]
88
184
  };
89
185
  //#endregion
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","names":[],"sources":["../src/ui.ts"],"sourcesContent":["/**\n * Projects Module UI Slot Declarations\n *\n * This file defines the UI extension points for the projects module.\n * UI components are implemented in the ./svelte subpath.\n */\n\nimport type { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';\n\n/**\n * Projects module UI slots\n */\nexport const PROJECTS_UI_SLOTS: Record<string, ModuleUISlot> = {\n 'time-entry-card': {\n id: 'time-entry-card',\n label: 'Time Entry Card',\n description: 'Card component for displaying time entries',\n icon: 'clock',\n category: 'display',\n order: 1,\n propsInterface: 'TimeEntryCardProps',\n },\n 'time-entry-list': {\n id: 'time-entry-list',\n label: 'Time Entry List',\n description: 'List of time entries with optional selection',\n icon: 'list',\n category: 'list',\n order: 2,\n propsInterface: 'TimeEntryListProps',\n },\n 'time-summary': {\n id: 'time-summary',\n label: 'Time Summary',\n description: 'Summary statistics for time entries',\n icon: 'chart',\n category: 'display',\n order: 3,\n propsInterface: 'TimeSummaryProps',\n },\n 'duration-display': {\n id: 'duration-display',\n label: 'Duration Display',\n description: 'Formats hours for display in decimal or HH:MM format',\n icon: 'timer',\n category: 'display',\n order: 4,\n propsInterface: 'DurationDisplayProps',\n },\n 'approval-actions': {\n id: 'approval-actions',\n label: 'Approval Actions',\n description: 'Status-based action buttons for approval workflow',\n icon: 'check',\n category: 'action',\n order: 5,\n propsInterface: 'ApprovalActionsProps',\n },\n 'bulk-actions': {\n id: 'bulk-actions',\n label: 'Bulk Actions',\n description: 'Action bar for bulk operations on selected items',\n icon: 'select-all',\n category: 'action',\n order: 6,\n propsInterface: 'BulkActionsProps',\n },\n 'reject-dialog': {\n id: 'reject-dialog',\n label: 'Reject Dialog',\n description: 'Modal dialog for rejecting with a reason',\n icon: 'x-circle',\n category: 'form',\n order: 7,\n propsInterface: 'RejectDialogProps',\n },\n};\n\n/**\n * Projects module metadata\n */\nexport const PROJECTS_MODULE_META: SmrtModuleMeta = {\n name: '@happyvertical/smrt-projects',\n displayName: 'Projects',\n description: 'Provider-agnostic project management with time tracking',\n uiSlots: PROJECTS_UI_SLOTS,\n models: ['Repository', 'Issue', 'PullRequest', 'Project', 'Comment', 'Label'],\n collections: [\n 'RepositoryCollection',\n 'IssueCollection',\n 'PullRequestCollection',\n 'ProjectCollection',\n 'CommentCollection',\n 'LabelCollection',\n ],\n};\n"],"mappings":";AAYO,IAAM,oBAAkD;CAC7D,mBAAmB;EACjB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,mBAAmB;EACjB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,gBAAgB;EACd,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,oBAAoB;EAClB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,oBAAoB;EAClB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,gBAAgB;EACd,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,iBAAiB;EACf,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;AACF;AAKO,IAAM,uBAAuC;CAClD,MAAM;CACN,aAAa;CACb,aAAa;CACb,SAAS;CACT,QAAQ;EAAC;EAAc;EAAS;EAAe;EAAW;EAAW;CAAO;CAC5E,aAAa;EACX;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"ui.js","names":[],"sources":["../src/ui.ts"],"sourcesContent":["/**\n * Projects Module UI Slot Declarations\n *\n * This file defines the UI extension points for the projects module.\n * UI components are implemented in the ./svelte subpath.\n */\n\nimport type { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';\n\n/**\n * Projects module UI slots\n */\nexport const PROJECTS_UI_SLOTS: Record<string, ModuleUISlot> = {\n 'development-request-form': {\n id: 'development-request-form',\n label: 'Development Request Form',\n description: 'Reusable managed-application request submission form',\n icon: 'send',\n category: 'form',\n order: 1,\n propsInterface: 'DevelopmentRequestFormProps',\n },\n 'development-request-list': {\n id: 'development-request-list',\n label: 'Development Request List',\n description: 'Requester-facing list of managed development requests',\n icon: 'list',\n category: 'list',\n order: 2,\n propsInterface: 'DevelopmentRequestListProps',\n },\n 'development-request-detail': {\n id: 'development-request-detail',\n label: 'Development Request Detail',\n description: 'Provider-neutral request detail and delivery timeline',\n icon: 'file-text',\n category: 'display',\n order: 3,\n propsInterface: 'DevelopmentRequestDetailProps',\n },\n 'development-board': {\n id: 'development-board',\n label: 'Development Board',\n description: 'Visibility-filtered projection of connected delivery work',\n icon: 'columns',\n category: 'display',\n order: 4,\n propsInterface: 'DevelopmentBoardProps',\n },\n 'delivery-status': {\n id: 'delivery-status',\n label: 'Delivery Status',\n description: 'Ordered timeline of delivery outcomes',\n icon: 'activity',\n category: 'display',\n order: 5,\n propsInterface: 'DeliveryStatusProps',\n },\n 'preview-approval': {\n id: 'preview-approval',\n label: 'Preview Approval',\n description: 'Approve or reject a managed delivery preview',\n icon: 'eye',\n category: 'action',\n order: 6,\n propsInterface: 'PreviewApprovalPanelProps',\n },\n 'assistance-launcher': {\n id: 'assistance-launcher',\n label: 'Assistance Launcher',\n description: 'Open a contextual support or development conversation',\n icon: 'message-circle',\n category: 'form',\n order: 7,\n propsInterface: 'AssistanceLauncherProps',\n },\n 'service-evidence-list': {\n id: 'service-evidence-list',\n label: 'Service Evidence List',\n description: 'Shared service duration, charge, and compensation evidence',\n icon: 'receipt',\n category: 'display',\n order: 8,\n propsInterface: 'ServiceEvidenceListProps',\n },\n 'time-entry-card': {\n id: 'time-entry-card',\n label: 'Time Entry Card',\n description: 'Card component for displaying time entries',\n icon: 'clock',\n category: 'display',\n order: 3,\n propsInterface: 'TimeEntryCardProps',\n },\n 'time-entry-list': {\n id: 'time-entry-list',\n label: 'Time Entry List',\n description: 'List of time entries with optional selection',\n icon: 'list',\n category: 'list',\n order: 4,\n propsInterface: 'TimeEntryListProps',\n },\n 'time-summary': {\n id: 'time-summary',\n label: 'Time Summary',\n description: 'Summary statistics for time entries',\n icon: 'chart',\n category: 'display',\n order: 5,\n propsInterface: 'TimeSummaryProps',\n },\n 'duration-display': {\n id: 'duration-display',\n label: 'Duration Display',\n description: 'Formats hours for display in decimal or HH:MM format',\n icon: 'timer',\n category: 'display',\n order: 6,\n propsInterface: 'DurationDisplayProps',\n },\n 'approval-actions': {\n id: 'approval-actions',\n label: 'Approval Actions',\n description: 'Status-based action buttons for approval workflow',\n icon: 'check',\n category: 'action',\n order: 7,\n propsInterface: 'ApprovalActionsProps',\n },\n 'bulk-actions': {\n id: 'bulk-actions',\n label: 'Bulk Actions',\n description: 'Action bar for bulk operations on selected items',\n icon: 'select-all',\n category: 'action',\n order: 8,\n propsInterface: 'BulkActionsProps',\n },\n 'reject-dialog': {\n id: 'reject-dialog',\n label: 'Reject Dialog',\n description: 'Modal dialog for rejecting with a reason',\n icon: 'x-circle',\n category: 'form',\n order: 9,\n propsInterface: 'RejectDialogProps',\n },\n};\n\n/**\n * Projects module metadata\n */\nexport const PROJECTS_MODULE_META: SmrtModuleMeta = {\n name: '@happyvertical/smrt-projects',\n displayName: 'Projects',\n description:\n 'Provider-agnostic project management with managed-app request intake and time tracking',\n uiSlots: PROJECTS_UI_SLOTS,\n models: [\n 'Repository',\n 'Issue',\n 'PullRequest',\n 'Project',\n 'Comment',\n 'Label',\n 'ProjectIntegration',\n 'ProjectIntegrationAudit',\n 'DevelopmentRequest',\n 'DevelopmentRequestHistory',\n 'DevelopmentRequestWorkLink',\n 'ProjectDeliveryEvent',\n 'PreviewApproval',\n 'AssistanceRequest',\n 'AssistanceRequestEvent',\n 'ServiceTimeEntry',\n 'ServiceChargeSnapshot',\n 'ServiceCompensationSnapshot',\n ],\n collections: [\n 'RepositoryCollection',\n 'IssueCollection',\n 'PullRequestCollection',\n 'ProjectCollection',\n 'CommentCollection',\n 'LabelCollection',\n 'ProjectIntegrationCollection',\n 'ProjectIntegrationAuditCollection',\n 'DevelopmentRequestCollection',\n 'DevelopmentRequestHistoryCollection',\n 'DevelopmentRequestWorkLinkCollection',\n 'ProjectDeliveryEventCollection',\n 'PreviewApprovalCollection',\n 'AssistanceRequestCollection',\n 'AssistanceRequestEventCollection',\n 'ServiceTimeEntryCollection',\n 'ServiceChargeSnapshotCollection',\n 'ServiceCompensationSnapshotCollection',\n ],\n};\n"],"mappings":";AAYO,IAAM,oBAAkD;CAC7D,4BAA4B;EAC1B,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,4BAA4B;EAC1B,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,8BAA8B;EAC5B,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,qBAAqB;EACnB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,mBAAmB;EACjB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,oBAAoB;EAClB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,uBAAuB;EACrB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,yBAAyB;EACvB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,mBAAmB;EACjB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,mBAAmB;EACjB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,gBAAgB;EACd,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,oBAAoB;EAClB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,oBAAoB;EAClB,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,gBAAgB;EACd,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;CACA,iBAAiB;EACf,IAAI;EACJ,OAAO;EACP,aAAa;EACb,MAAM;EACN,UAAU;EACV,OAAO;EACP,gBAAgB;CAClB;AACF;AAKO,IAAM,uBAAuC;CAClD,MAAM;CACN,aAAa;CACb,aACE;CACF,SAAS;CACT,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,aAAa;EACX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-projects",
3
- "version": "0.39.4",
3
+ "version": "0.39.7",
4
4
  "description": "Provider-agnostic project management models (Issues, PRs, Repositories, Projects) for SMRT framework",
5
5
  "type": "module",
6
6
  "smrtRawPrimitives": "strict",
@@ -8,6 +8,7 @@
8
8
  "types": "./dist/index.d.ts",
9
9
  "files": [
10
10
  "dist",
11
+ "SERVICE_TIME_MIGRATION.md",
11
12
  "CLAUDE.md",
12
13
  "AGENTS.md"
13
14
  ],
@@ -39,12 +40,13 @@
39
40
  "@happyvertical/repos": "^0.78.0",
40
41
  "@happyvertical/sql": "^0.78.0",
41
42
  "@happyvertical/utils": "^0.78.0",
42
- "@happyvertical/smrt-config": "0.39.4",
43
- "@happyvertical/smrt-core": "0.39.4",
44
- "@happyvertical/smrt-prompts": "0.39.4",
45
- "@happyvertical/smrt-tenancy": "0.39.4",
46
- "@happyvertical/smrt-types": "0.39.4",
47
- "@happyvertical/smrt-ui": "0.39.4"
43
+ "@happyvertical/smrt-config": "0.39.7",
44
+ "@happyvertical/smrt-prompts": "0.39.7",
45
+ "@happyvertical/smrt-tenancy": "0.39.7",
46
+ "@happyvertical/smrt-subscriptions": "0.39.7",
47
+ "@happyvertical/smrt-types": "0.39.7",
48
+ "@happyvertical/smrt-core": "0.39.7",
49
+ "@happyvertical/smrt-ui": "0.39.7"
48
50
  },
49
51
  "peerDependencies": {
50
52
  "svelte": "^5.56.4"
@@ -64,8 +66,8 @@
64
66
  "typescript": "^5.9.3",
65
67
  "vite": "^8.1.3",
66
68
  "vitest": "^4.1.9",
67
- "@happyvertical/smrt-cli": "0.39.4",
68
- "@happyvertical/smrt-vitest": "0.39.4"
69
+ "@happyvertical/smrt-cli": "0.39.7",
70
+ "@happyvertical/smrt-vitest": "0.39.7"
69
71
  },
70
72
  "keywords": [
71
73
  "ai",