@happyvertical/smrt-projects 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +31 -0
- package/CLAUDE.md +1 -0
- package/LICENSE +7 -0
- package/README.md +97 -0
- package/dist/__smrt-register__.d.ts +2 -0
- package/dist/__smrt-register__.d.ts.map +1 -0
- package/dist/collections/Issues.d.ts +107 -0
- package/dist/collections/Issues.d.ts.map +1 -0
- package/dist/collections/Projects.d.ts +90 -0
- package/dist/collections/Projects.d.ts.map +1 -0
- package/dist/collections/PullRequests.d.ts +107 -0
- package/dist/collections/PullRequests.d.ts.map +1 -0
- package/dist/collections/Repositories.d.ts +77 -0
- package/dist/collections/Repositories.d.ts.map +1 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2477 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.json +4193 -0
- package/dist/models/Comment.d.ts +77 -0
- package/dist/models/Comment.d.ts.map +1 -0
- package/dist/models/Issue.d.ts +200 -0
- package/dist/models/Issue.d.ts.map +1 -0
- package/dist/models/Label.d.ts +63 -0
- package/dist/models/Label.d.ts.map +1 -0
- package/dist/models/Project.d.ts +183 -0
- package/dist/models/Project.d.ts.map +1 -0
- package/dist/models/PullRequest.d.ts +114 -0
- package/dist/models/PullRequest.d.ts.map +1 -0
- package/dist/models/Repository.d.ts +141 -0
- package/dist/models/Repository.d.ts.map +1 -0
- package/dist/playground.d.ts +2 -0
- package/dist/playground.d.ts.map +1 -0
- package/dist/playground.js +129 -0
- package/dist/playground.js.map +1 -0
- package/dist/prompts.d.ts +2 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +1956 -0
- package/dist/svelte/components/ApprovalActions.svelte +213 -0
- package/dist/svelte/components/ApprovalActions.svelte.d.ts +17 -0
- package/dist/svelte/components/ApprovalActions.svelte.d.ts.map +1 -0
- package/dist/svelte/components/BulkActions.svelte +224 -0
- package/dist/svelte/components/BulkActions.svelte.d.ts +14 -0
- package/dist/svelte/components/BulkActions.svelte.d.ts.map +1 -0
- package/dist/svelte/components/DurationDisplay.svelte +68 -0
- package/dist/svelte/components/DurationDisplay.svelte.d.ts +11 -0
- package/dist/svelte/components/DurationDisplay.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RejectDialog.svelte +250 -0
- package/dist/svelte/components/RejectDialog.svelte.d.ts +17 -0
- package/dist/svelte/components/RejectDialog.svelte.d.ts.map +1 -0
- package/dist/svelte/components/TimeEntryCard.svelte +294 -0
- package/dist/svelte/components/TimeEntryCard.svelte.d.ts +17 -0
- package/dist/svelte/components/TimeEntryCard.svelte.d.ts.map +1 -0
- package/dist/svelte/components/TimeEntryList.svelte +351 -0
- package/dist/svelte/components/TimeEntryList.svelte.d.ts +17 -0
- package/dist/svelte/components/TimeEntryList.svelte.d.ts.map +1 -0
- package/dist/svelte/components/TimeSummary.svelte +165 -0
- package/dist/svelte/components/TimeSummary.svelte.d.ts +19 -0
- package/dist/svelte/components/TimeSummary.svelte.d.ts.map +1 -0
- package/dist/svelte/components/__tests__/ApprovalActions.test.js +41 -0
- package/dist/svelte/components/__tests__/BulkActions.test.js +46 -0
- package/dist/svelte/components/__tests__/DurationDisplay.test.js +23 -0
- package/dist/svelte/components/__tests__/RejectDialog.test.js +45 -0
- package/dist/svelte/components/__tests__/TimeEntryCard.test.js +45 -0
- package/dist/svelte/components/__tests__/TimeEntryList.test.js +50 -0
- package/dist/svelte/components/__tests__/TimeSummary.test.js +39 -0
- package/dist/svelte/components/utils.d.ts +42 -0
- package/dist/svelte/components/utils.d.ts.map +1 -0
- package/dist/svelte/components/utils.js +43 -0
- package/dist/svelte/i18n.d.ts +18 -0
- package/dist/svelte/i18n.d.ts.map +1 -0
- package/dist/svelte/i18n.js +18 -0
- package/dist/svelte/index.d.ts +26 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +31 -0
- package/dist/svelte/playground.d.ts +122 -0
- package/dist/svelte/playground.d.ts.map +1 -0
- package/dist/svelte/playground.js +114 -0
- package/dist/svelte/utils.d.ts +42 -0
- package/dist/svelte/utils.d.ts.map +1 -0
- package/dist/svelte/utils.js +43 -0
- package/dist/types.d.ts +54 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui.d.ts +10 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +85 -0
- package/dist/ui.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for time tracking components
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Status color mapping using M3 design tokens
|
|
6
|
+
*/
|
|
7
|
+
export const statusColors = {
|
|
8
|
+
draft: 'var(--md-sys-color-outline)',
|
|
9
|
+
submitted: 'var(--md-sys-color-tertiary)',
|
|
10
|
+
approved: 'var(--md-sys-color-primary)',
|
|
11
|
+
rejected: 'var(--md-sys-color-error)',
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Format a date for display (e.g., "Jan 5")
|
|
15
|
+
*/
|
|
16
|
+
export function formatDate(date) {
|
|
17
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
18
|
+
return d.toLocaleDateString('en-CA', { month: 'short', day: 'numeric' });
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Format currency amount for display
|
|
22
|
+
*/
|
|
23
|
+
export function formatCurrency(amount, currency = 'CAD') {
|
|
24
|
+
return new Intl.NumberFormat('en-CA', {
|
|
25
|
+
style: 'currency',
|
|
26
|
+
currency,
|
|
27
|
+
minimumFractionDigits: 2,
|
|
28
|
+
}).format(amount);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Format hours for display (e.g., "8.5h")
|
|
32
|
+
*/
|
|
33
|
+
export function formatHours(hours) {
|
|
34
|
+
return `${hours.toFixed(1)}h`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Format hours in HH:MM format (e.g., "8:30")
|
|
38
|
+
*/
|
|
39
|
+
export function formatHoursHHMM(hours) {
|
|
40
|
+
const h = Math.floor(hours);
|
|
41
|
+
const m = Math.round((hours - h) * 60);
|
|
42
|
+
return `${h}:${m.toString().padStart(2, '0')}`;
|
|
43
|
+
}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @happyvertical/smrt-projects - Type definitions
|
|
3
|
+
*
|
|
4
|
+
* Re-exports SDK types and defines SMRT-specific types
|
|
5
|
+
*/
|
|
6
|
+
export type { Field as ProjectField, FieldOption as ProjectFieldOption, IProject, ItemFilters, Project as SDKProject, ProjectConfig, ProjectItem, Status as ProjectStatus, } from '@happyvertical/projects';
|
|
7
|
+
export type { Branch, Comment as SDKComment, CreateIssueInput, CreatePRInput, IRepository, Issue as SDKIssue, Label as SDKLabel, MergeMethod, PullRequest as SDKPullRequest, Repository as SDKRepository, RepositoryConfig, SearchFilters, UpdateIssueInput, User, } from '@happyvertical/repos';
|
|
8
|
+
/**
|
|
9
|
+
* Provider types supported by smrt-projects
|
|
10
|
+
*/
|
|
11
|
+
export type RepositoryProviderType = 'github' | 'gitlab' | 'bitbucket' | 'azure';
|
|
12
|
+
export type ProjectProviderType = 'github' | 'jira' | 'linear' | 'zenhub';
|
|
13
|
+
/**
|
|
14
|
+
* Result of incorporateFeedback operation
|
|
15
|
+
*/
|
|
16
|
+
export interface IncorporateFeedbackResult {
|
|
17
|
+
/** The synthesized body text */
|
|
18
|
+
synthesized: string;
|
|
19
|
+
/** Whether the changes were applied to the issue */
|
|
20
|
+
applied: boolean;
|
|
21
|
+
/** Number of comments that were analyzed */
|
|
22
|
+
commentsAnalyzed: number;
|
|
23
|
+
/** Previous body (before update) */
|
|
24
|
+
previousBody?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Options for incorporateFeedback method
|
|
28
|
+
*/
|
|
29
|
+
export interface IncorporateFeedbackOptions {
|
|
30
|
+
/** Custom prompt for AI synthesis */
|
|
31
|
+
prompt?: string;
|
|
32
|
+
/** Whether to apply changes immediately (default: false for preview) */
|
|
33
|
+
apply?: boolean;
|
|
34
|
+
/** Include comments since this date */
|
|
35
|
+
since?: Date;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Options for sync operations
|
|
39
|
+
*/
|
|
40
|
+
export interface SyncOptions {
|
|
41
|
+
/** Force sync even if recently synced */
|
|
42
|
+
force?: boolean;
|
|
43
|
+
/** Include comments in sync */
|
|
44
|
+
includeComments?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Sync status tracking
|
|
48
|
+
*/
|
|
49
|
+
export interface SyncStatus {
|
|
50
|
+
lastSyncedAt: Date | null;
|
|
51
|
+
syncError?: string;
|
|
52
|
+
syncedFields: string[];
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/ui.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ModuleUISlot, SmrtModuleMeta } from '@happyvertical/smrt-types';
|
|
2
|
+
/**
|
|
3
|
+
* Projects module UI slots
|
|
4
|
+
*/
|
|
5
|
+
export declare const PROJECTS_UI_SLOTS: Record<string, ModuleUISlot>;
|
|
6
|
+
/**
|
|
7
|
+
* Projects module metadata
|
|
8
|
+
*/
|
|
9
|
+
export declare const PROJECTS_MODULE_META: SmrtModuleMeta;
|
|
10
|
+
//# sourceMappingURL=ui.d.ts.map
|
package/dist/ui.d.ts.map
ADDED
|
@@ -0,0 +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"}
|
package/dist/ui.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const PROJECTS_UI_SLOTS = {
|
|
2
|
+
"time-entry-card": {
|
|
3
|
+
id: "time-entry-card",
|
|
4
|
+
label: "Time Entry Card",
|
|
5
|
+
description: "Card component for displaying time entries",
|
|
6
|
+
icon: "clock",
|
|
7
|
+
category: "display",
|
|
8
|
+
order: 1,
|
|
9
|
+
propsInterface: "TimeEntryCardProps"
|
|
10
|
+
},
|
|
11
|
+
"time-entry-list": {
|
|
12
|
+
id: "time-entry-list",
|
|
13
|
+
label: "Time Entry List",
|
|
14
|
+
description: "List of time entries with optional selection",
|
|
15
|
+
icon: "list",
|
|
16
|
+
category: "list",
|
|
17
|
+
order: 2,
|
|
18
|
+
propsInterface: "TimeEntryListProps"
|
|
19
|
+
},
|
|
20
|
+
"time-summary": {
|
|
21
|
+
id: "time-summary",
|
|
22
|
+
label: "Time Summary",
|
|
23
|
+
description: "Summary statistics for time entries",
|
|
24
|
+
icon: "chart",
|
|
25
|
+
category: "display",
|
|
26
|
+
order: 3,
|
|
27
|
+
propsInterface: "TimeSummaryProps"
|
|
28
|
+
},
|
|
29
|
+
"duration-display": {
|
|
30
|
+
id: "duration-display",
|
|
31
|
+
label: "Duration Display",
|
|
32
|
+
description: "Formats hours for display in decimal or HH:MM format",
|
|
33
|
+
icon: "timer",
|
|
34
|
+
category: "display",
|
|
35
|
+
order: 4,
|
|
36
|
+
propsInterface: "DurationDisplayProps"
|
|
37
|
+
},
|
|
38
|
+
"approval-actions": {
|
|
39
|
+
id: "approval-actions",
|
|
40
|
+
label: "Approval Actions",
|
|
41
|
+
description: "Status-based action buttons for approval workflow",
|
|
42
|
+
icon: "check",
|
|
43
|
+
category: "action",
|
|
44
|
+
order: 5,
|
|
45
|
+
propsInterface: "ApprovalActionsProps"
|
|
46
|
+
},
|
|
47
|
+
"bulk-actions": {
|
|
48
|
+
id: "bulk-actions",
|
|
49
|
+
label: "Bulk Actions",
|
|
50
|
+
description: "Action bar for bulk operations on selected items",
|
|
51
|
+
icon: "select-all",
|
|
52
|
+
category: "action",
|
|
53
|
+
order: 6,
|
|
54
|
+
propsInterface: "BulkActionsProps"
|
|
55
|
+
},
|
|
56
|
+
"reject-dialog": {
|
|
57
|
+
id: "reject-dialog",
|
|
58
|
+
label: "Reject Dialog",
|
|
59
|
+
description: "Modal dialog for rejecting with a reason",
|
|
60
|
+
icon: "x-circle",
|
|
61
|
+
category: "form",
|
|
62
|
+
order: 7,
|
|
63
|
+
propsInterface: "RejectDialogProps"
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const PROJECTS_MODULE_META = {
|
|
67
|
+
name: "@happyvertical/smrt-projects",
|
|
68
|
+
displayName: "Projects",
|
|
69
|
+
description: "Provider-agnostic project management with time tracking",
|
|
70
|
+
uiSlots: PROJECTS_UI_SLOTS,
|
|
71
|
+
models: ["Repository", "Issue", "PullRequest", "Project", "Comment", "Label"],
|
|
72
|
+
collections: [
|
|
73
|
+
"RepositoryCollection",
|
|
74
|
+
"IssueCollection",
|
|
75
|
+
"PullRequestCollection",
|
|
76
|
+
"ProjectCollection",
|
|
77
|
+
"CommentCollection",
|
|
78
|
+
"LabelCollection"
|
|
79
|
+
]
|
|
80
|
+
};
|
|
81
|
+
export {
|
|
82
|
+
PROJECTS_MODULE_META,
|
|
83
|
+
PROJECTS_UI_SLOTS
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=ui.js.map
|
package/dist/ui.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","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"],"names":[],"mappings":"AAYO,MAAM,oBAAkD;AAAA,EAC7D,mBAAmB;AAAA,IACjB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,mBAAmB;AAAA,IACjB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,oBAAoB;AAAA,IAClB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,oBAAoB;AAAA,IAClB,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAAA,EAElB,iBAAiB;AAAA,IACf,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,gBAAgB;AAAA,EAAA;AAEpB;AAKO,MAAM,uBAAuC;AAAA,EAClD,MAAM;AAAA,EACN,aAAa;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,QAAQ,CAAC,cAAc,SAAS,eAAe,WAAW,WAAW,OAAO;AAAA,EAC5E,aAAa;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@happyvertical/smrt-projects",
|
|
3
|
+
"version": "0.30.0",
|
|
4
|
+
"description": "Provider-agnostic project management models (Issues, PRs, Repositories, Projects) for SMRT framework",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"CLAUDE.md",
|
|
11
|
+
"AGENTS.md"
|
|
12
|
+
],
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./ui": {
|
|
19
|
+
"types": "./dist/ui.d.ts",
|
|
20
|
+
"import": "./dist/ui.js"
|
|
21
|
+
},
|
|
22
|
+
"./manifest": "./dist/manifest.json",
|
|
23
|
+
"./manifest.json": "./dist/manifest.json",
|
|
24
|
+
"./playground": {
|
|
25
|
+
"types": "./dist/playground.d.ts",
|
|
26
|
+
"import": "./dist/playground.js"
|
|
27
|
+
},
|
|
28
|
+
"./svelte": {
|
|
29
|
+
"types": "./dist/svelte/index.d.ts",
|
|
30
|
+
"svelte": "./dist/svelte/index.js",
|
|
31
|
+
"import": "./dist/svelte/index.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@happyvertical/ai": "^0.74.7",
|
|
36
|
+
"@happyvertical/logger": "^0.74.7",
|
|
37
|
+
"@happyvertical/projects": "^0.74.7",
|
|
38
|
+
"@happyvertical/repos": "^0.74.7",
|
|
39
|
+
"@happyvertical/sql": "^0.74.7",
|
|
40
|
+
"@happyvertical/utils": "^0.74.7",
|
|
41
|
+
"@happyvertical/smrt-config": "0.30.0",
|
|
42
|
+
"@happyvertical/smrt-core": "0.30.0",
|
|
43
|
+
"@happyvertical/smrt-tenancy": "0.30.0",
|
|
44
|
+
"@happyvertical/smrt-types": "0.30.0",
|
|
45
|
+
"@happyvertical/smrt-prompts": "0.30.0",
|
|
46
|
+
"@happyvertical/smrt-ui": "0.30.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"svelte": "^5.18.0"
|
|
50
|
+
},
|
|
51
|
+
"peerDependenciesMeta": {
|
|
52
|
+
"svelte": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@sveltejs/package": "^2.5.7",
|
|
58
|
+
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
59
|
+
"@types/node": "25.0.9",
|
|
60
|
+
"fast-glob": "3.3.3",
|
|
61
|
+
"svelte": "^5.46.4",
|
|
62
|
+
"svelte-check": "^4.3.5",
|
|
63
|
+
"typescript": "^5.9.3",
|
|
64
|
+
"vite": "^7.3.1",
|
|
65
|
+
"vitest": "^4.0.17",
|
|
66
|
+
"@happyvertical/smrt-cli": "0.30.0",
|
|
67
|
+
"@happyvertical/smrt-vitest": "0.30.0"
|
|
68
|
+
},
|
|
69
|
+
"keywords": [
|
|
70
|
+
"ai",
|
|
71
|
+
"agents",
|
|
72
|
+
"projects",
|
|
73
|
+
"issues",
|
|
74
|
+
"github",
|
|
75
|
+
"gitlab",
|
|
76
|
+
"smrt"
|
|
77
|
+
],
|
|
78
|
+
"author": "HappyVertical",
|
|
79
|
+
"license": "MIT",
|
|
80
|
+
"publishConfig": {
|
|
81
|
+
"registry": "https://registry.npmjs.org",
|
|
82
|
+
"access": "public"
|
|
83
|
+
},
|
|
84
|
+
"repository": {
|
|
85
|
+
"type": "git",
|
|
86
|
+
"url": "https://github.com/happyvertical/smrt.git",
|
|
87
|
+
"directory": "packages/projects"
|
|
88
|
+
},
|
|
89
|
+
"scripts": {
|
|
90
|
+
"build": "vite build --mode library && svelte-package -i src/svelte -o dist/svelte --tsconfig tsconfig.svelte.json",
|
|
91
|
+
"build:watch": "vite build --mode library --watch",
|
|
92
|
+
"check": "pnpm exec svelte-check --tsconfig ./tsconfig.svelte.json",
|
|
93
|
+
"typecheck": "tsc --noEmit && node ../../scripts/svelte-check-a11y.mjs --tsconfig ./tsconfig.svelte.json",
|
|
94
|
+
"clean": "rm -rf dist",
|
|
95
|
+
"dev": "vite dev",
|
|
96
|
+
"test": "vitest run",
|
|
97
|
+
"test:watch": "vitest",
|
|
98
|
+
"verify:pack": "node ../../scripts/verify-package-types-exports.js ."
|
|
99
|
+
}
|
|
100
|
+
}
|