@fractary/core 0.1.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.
Files changed (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -0
  3. package/dist/__tests__/smoke.test.d.ts +7 -0
  4. package/dist/__tests__/smoke.test.d.ts.map +1 -0
  5. package/dist/__tests__/smoke.test.js +132 -0
  6. package/dist/__tests__/smoke.test.js.map +1 -0
  7. package/dist/common/config.d.ts +30 -0
  8. package/dist/common/config.d.ts.map +1 -0
  9. package/dist/common/config.js +120 -0
  10. package/dist/common/config.js.map +1 -0
  11. package/dist/common/errors.d.ts +264 -0
  12. package/dist/common/errors.d.ts.map +1 -0
  13. package/dist/common/errors.js +491 -0
  14. package/dist/common/errors.js.map +1 -0
  15. package/dist/common/index.d.ts +9 -0
  16. package/dist/common/index.d.ts.map +1 -0
  17. package/dist/common/index.js +25 -0
  18. package/dist/common/index.js.map +1 -0
  19. package/dist/common/types.d.ts +622 -0
  20. package/dist/common/types.d.ts.map +1 -0
  21. package/dist/common/types.js +8 -0
  22. package/dist/common/types.js.map +1 -0
  23. package/dist/docs/index.d.ts +8 -0
  24. package/dist/docs/index.d.ts.map +1 -0
  25. package/dist/docs/index.js +26 -0
  26. package/dist/docs/index.js.map +1 -0
  27. package/dist/docs/manager.d.ts +47 -0
  28. package/dist/docs/manager.d.ts.map +1 -0
  29. package/dist/docs/manager.js +250 -0
  30. package/dist/docs/manager.js.map +1 -0
  31. package/dist/docs/types.d.ts +113 -0
  32. package/dist/docs/types.d.ts.map +1 -0
  33. package/dist/docs/types.js +8 -0
  34. package/dist/docs/types.js.map +1 -0
  35. package/dist/file/index.d.ts +9 -0
  36. package/dist/file/index.d.ts.map +1 -0
  37. package/dist/file/index.js +28 -0
  38. package/dist/file/index.js.map +1 -0
  39. package/dist/file/local.d.ts +42 -0
  40. package/dist/file/local.d.ts.map +1 -0
  41. package/dist/file/local.js +137 -0
  42. package/dist/file/local.js.map +1 -0
  43. package/dist/file/manager.d.ts +42 -0
  44. package/dist/file/manager.d.ts.map +1 -0
  45. package/dist/file/manager.js +68 -0
  46. package/dist/file/manager.js.map +1 -0
  47. package/dist/file/types.d.ts +52 -0
  48. package/dist/file/types.d.ts.map +1 -0
  49. package/dist/file/types.js +8 -0
  50. package/dist/file/types.js.map +1 -0
  51. package/dist/index.d.ts +21 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +43 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/logs/index.d.ts +8 -0
  56. package/dist/logs/index.d.ts.map +1 -0
  57. package/dist/logs/index.js +26 -0
  58. package/dist/logs/index.js.map +1 -0
  59. package/dist/logs/manager.d.ts +97 -0
  60. package/dist/logs/manager.d.ts.map +1 -0
  61. package/dist/logs/manager.js +584 -0
  62. package/dist/logs/manager.js.map +1 -0
  63. package/dist/logs/types.d.ts +45 -0
  64. package/dist/logs/types.d.ts.map +1 -0
  65. package/dist/logs/types.js +8 -0
  66. package/dist/logs/types.js.map +1 -0
  67. package/dist/repo/git.d.ts +182 -0
  68. package/dist/repo/git.d.ts.map +1 -0
  69. package/dist/repo/git.js +496 -0
  70. package/dist/repo/git.js.map +1 -0
  71. package/dist/repo/index.d.ts +10 -0
  72. package/dist/repo/index.d.ts.map +1 -0
  73. package/dist/repo/index.js +29 -0
  74. package/dist/repo/index.js.map +1 -0
  75. package/dist/repo/manager.d.ts +179 -0
  76. package/dist/repo/manager.d.ts.map +1 -0
  77. package/dist/repo/manager.js +433 -0
  78. package/dist/repo/manager.js.map +1 -0
  79. package/dist/repo/providers/bitbucket.d.ts +48 -0
  80. package/dist/repo/providers/bitbucket.d.ts.map +1 -0
  81. package/dist/repo/providers/bitbucket.js +86 -0
  82. package/dist/repo/providers/bitbucket.js.map +1 -0
  83. package/dist/repo/providers/github.d.ts +30 -0
  84. package/dist/repo/providers/github.d.ts.map +1 -0
  85. package/dist/repo/providers/github.js +311 -0
  86. package/dist/repo/providers/github.js.map +1 -0
  87. package/dist/repo/providers/gitlab.d.ts +47 -0
  88. package/dist/repo/providers/gitlab.d.ts.map +1 -0
  89. package/dist/repo/providers/gitlab.js +84 -0
  90. package/dist/repo/providers/gitlab.js.map +1 -0
  91. package/dist/repo/providers/index.d.ts +9 -0
  92. package/dist/repo/providers/index.d.ts.map +1 -0
  93. package/dist/repo/providers/index.js +15 -0
  94. package/dist/repo/providers/index.js.map +1 -0
  95. package/dist/repo/types.d.ts +48 -0
  96. package/dist/repo/types.d.ts.map +1 -0
  97. package/dist/repo/types.js +8 -0
  98. package/dist/repo/types.js.map +1 -0
  99. package/dist/spec/index.d.ts +9 -0
  100. package/dist/spec/index.d.ts.map +1 -0
  101. package/dist/spec/index.js +30 -0
  102. package/dist/spec/index.js.map +1 -0
  103. package/dist/spec/manager.d.ts +106 -0
  104. package/dist/spec/manager.d.ts.map +1 -0
  105. package/dist/spec/manager.js +672 -0
  106. package/dist/spec/manager.js.map +1 -0
  107. package/dist/spec/templates.d.ts +28 -0
  108. package/dist/spec/templates.d.ts.map +1 -0
  109. package/dist/spec/templates.js +357 -0
  110. package/dist/spec/templates.js.map +1 -0
  111. package/dist/spec/types.d.ts +53 -0
  112. package/dist/spec/types.d.ts.map +1 -0
  113. package/dist/spec/types.js +8 -0
  114. package/dist/spec/types.js.map +1 -0
  115. package/dist/work/index.d.ts +8 -0
  116. package/dist/work/index.d.ts.map +1 -0
  117. package/dist/work/index.js +26 -0
  118. package/dist/work/index.js.map +1 -0
  119. package/dist/work/manager.d.ts +112 -0
  120. package/dist/work/manager.d.ts.map +1 -0
  121. package/dist/work/manager.js +227 -0
  122. package/dist/work/manager.js.map +1 -0
  123. package/dist/work/providers/github.d.ts +40 -0
  124. package/dist/work/providers/github.d.ts.map +1 -0
  125. package/dist/work/providers/github.js +299 -0
  126. package/dist/work/providers/github.js.map +1 -0
  127. package/dist/work/providers/jira.d.ts +60 -0
  128. package/dist/work/providers/jira.d.ts.map +1 -0
  129. package/dist/work/providers/jira.js +109 -0
  130. package/dist/work/providers/jira.js.map +1 -0
  131. package/dist/work/providers/linear.d.ts +57 -0
  132. package/dist/work/providers/linear.d.ts.map +1 -0
  133. package/dist/work/providers/linear.js +103 -0
  134. package/dist/work/providers/linear.js.map +1 -0
  135. package/dist/work/types.d.ts +42 -0
  136. package/dist/work/types.d.ts.map +1 -0
  137. package/dist/work/types.js +8 -0
  138. package/dist/work/types.js.map +1 -0
  139. package/package.json +102 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/core - GitLab Repo Provider
4
+ *
5
+ * ⚠️ STUB IMPLEMENTATION - NOT YET FUNCTIONAL
6
+ *
7
+ * This provider is included for future compatibility but is not currently implemented.
8
+ * All methods will throw ProviderError when called.
9
+ *
10
+ * Use GitHubRepoProvider for a fully functional repository provider.
11
+ *
12
+ * Future implementation will include:
13
+ * - GitLab REST API integration
14
+ * - Group/project configuration
15
+ * - Merge Request operations
16
+ * - Branch management
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.GitLabRepoProvider = void 0;
20
+ const errors_1 = require("../../common/errors");
21
+ /**
22
+ * GitLab repository provider
23
+ *
24
+ * Note: This is a stub implementation. Full GitLab support requires:
25
+ * - GitLab API v4 integration
26
+ * - Merge Request operations (GitLab's equivalent of PRs)
27
+ * - Project/group configuration
28
+ */
29
+ class GitLabRepoProvider {
30
+ platform = 'gitlab';
31
+ // Stored for future API implementation
32
+ projectId;
33
+ constructor(config) {
34
+ if (!config.repo) {
35
+ throw new errors_1.ProviderError('gitlab', 'init', 'GitLab repo provider requires repo (project_id) in config');
36
+ }
37
+ this.projectId = config.repo;
38
+ }
39
+ /** Get the project identifier for API calls */
40
+ getProjectId() {
41
+ return this.projectId;
42
+ }
43
+ notImplemented(operation) {
44
+ throw new errors_1.ProviderError('gitlab', operation, `GitLab ${operation} not yet implemented`);
45
+ }
46
+ async createBranch(_name, _options) {
47
+ this.notImplemented('createBranch');
48
+ }
49
+ async deleteBranch(_name, _options) {
50
+ this.notImplemented('deleteBranch');
51
+ }
52
+ async listBranches(_options) {
53
+ this.notImplemented('listBranches');
54
+ }
55
+ async getBranch(_name) {
56
+ this.notImplemented('getBranch');
57
+ }
58
+ async createPR(_options) {
59
+ this.notImplemented('createPR');
60
+ }
61
+ async getPR(_number) {
62
+ this.notImplemented('getPR');
63
+ }
64
+ async updatePR(_number, _options) {
65
+ this.notImplemented('updatePR');
66
+ }
67
+ async listPRs(_options) {
68
+ this.notImplemented('listPRs');
69
+ }
70
+ async mergePR(_number, _options) {
71
+ this.notImplemented('mergePR');
72
+ }
73
+ async addPRComment(_number, _body) {
74
+ this.notImplemented('addPRComment');
75
+ }
76
+ async requestReview(_number, _reviewers) {
77
+ this.notImplemented('requestReview');
78
+ }
79
+ async approvePR(_number, _comment) {
80
+ this.notImplemented('approvePR');
81
+ }
82
+ }
83
+ exports.GitLabRepoProvider = GitLabRepoProvider;
84
+ //# sourceMappingURL=gitlab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../../src/repo/providers/gitlab.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAeH,gDAAoD;AAEpD;;;;;;;GAOG;AACH,MAAa,kBAAkB;IACpB,QAAQ,GAAG,QAAiB,CAAC;IACtC,uCAAuC;IAC/B,SAAS,CAAS;IAE1B,YAAY,MAAkB;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,sBAAa,CACrB,QAAQ,EACR,MAAM,EACN,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,+CAA+C;IACrC,YAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,cAAc,CAAC,SAAiB;QACtC,MAAM,IAAI,sBAAa,CACrB,QAAQ,EACR,SAAS,EACT,UAAU,SAAS,sBAAsB,CAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAA8B;QAC9D,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAA8B;QAC9D,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAA4B;QAC7C,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAyB;QACtC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAe;QACzB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,QAAyB;QACvD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAwB;QACpC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,QAAyB;QACtD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,KAAa;QAC/C,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,UAAoB;QACvD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,QAAiB;QAChD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;CACF;AA5ED,gDA4EC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fractary/faber - Repo Providers
3
+ *
4
+ * Repository provider exports.
5
+ */
6
+ export { GitHubRepoProvider } from './github';
7
+ export { GitLabRepoProvider } from './gitlab';
8
+ export { BitbucketRepoProvider } from './bitbucket';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/repo/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/faber - Repo Providers
4
+ *
5
+ * Repository provider exports.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BitbucketRepoProvider = exports.GitLabRepoProvider = exports.GitHubRepoProvider = void 0;
9
+ var github_1 = require("./github");
10
+ Object.defineProperty(exports, "GitHubRepoProvider", { enumerable: true, get: function () { return github_1.GitHubRepoProvider; } });
11
+ var gitlab_1 = require("./gitlab");
12
+ Object.defineProperty(exports, "GitLabRepoProvider", { enumerable: true, get: function () { return gitlab_1.GitLabRepoProvider; } });
13
+ var bitbucket_1 = require("./bitbucket");
14
+ Object.defineProperty(exports, "BitbucketRepoProvider", { enumerable: true, get: function () { return bitbucket_1.BitbucketRepoProvider; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repo/providers/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,yCAAoD;AAA3C,kHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @fractary/faber - Repo Module Types
3
+ *
4
+ * Re-exports from main types + repo-specific interfaces.
5
+ */
6
+ import type { RepoConfig, RepoPlatform, BranchPrefixConfig, Branch, BranchCreateOptions, BranchDeleteOptions, BranchListOptions, Commit, CommitType, CommitOptions, CommitListOptions, GitStatus, PullRequest, PRCreateOptions, PRUpdateOptions, PRListOptions, PRMergeStrategy, PRMergeOptions, PRReviewOptions, Tag, TagCreateOptions, TagListOptions, Worktree, WorktreeCreateOptions, WorktreeCleanupOptions, PushOptions, PullOptions } from '../common/types';
7
+ export type { RepoConfig, RepoPlatform, BranchPrefixConfig, Branch, BranchCreateOptions, BranchDeleteOptions, BranchListOptions, Commit, CommitType, CommitOptions, CommitListOptions, GitStatus, PullRequest, PRCreateOptions, PRUpdateOptions, PRListOptions, PRMergeStrategy, PRMergeOptions, PRReviewOptions, Tag, TagCreateOptions, TagListOptions, Worktree, WorktreeCreateOptions, WorktreeCleanupOptions, PushOptions, PullOptions, };
8
+ /**
9
+ * Interface for repository providers
10
+ */
11
+ export interface RepoProvider {
12
+ readonly platform: 'github' | 'gitlab' | 'bitbucket';
13
+ createBranch(name: string, options?: BranchCreateOptions): Promise<Branch>;
14
+ deleteBranch(name: string, options?: BranchDeleteOptions): Promise<void>;
15
+ listBranches(options?: BranchListOptions): Promise<Branch[]>;
16
+ getBranch(name: string): Promise<Branch | null>;
17
+ createPR(options: PRCreateOptions): Promise<PullRequest>;
18
+ getPR(number: number): Promise<PullRequest>;
19
+ updatePR(number: number, options: PRUpdateOptions): Promise<PullRequest>;
20
+ listPRs(options?: PRListOptions): Promise<PullRequest[]>;
21
+ mergePR(number: number, options?: PRMergeOptions): Promise<PullRequest>;
22
+ addPRComment(number: number, body: string): Promise<void>;
23
+ requestReview(number: number, reviewers: string[]): Promise<void>;
24
+ approvePR(number: number, comment?: string): Promise<void>;
25
+ }
26
+ /**
27
+ * Worktree cleanup result
28
+ */
29
+ export interface WorktreeCleanupResult {
30
+ removed: string[];
31
+ skipped: Array<{
32
+ path: string;
33
+ reason: string;
34
+ }>;
35
+ errors: Array<{
36
+ path: string;
37
+ error: string;
38
+ }>;
39
+ }
40
+ /**
41
+ * Diff options
42
+ */
43
+ export interface DiffOptions {
44
+ staged?: boolean;
45
+ base?: string;
46
+ head?: string;
47
+ }
48
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,WAAW,GACZ,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAGrD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAGhD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACxE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/faber - Repo Module Types
4
+ *
5
+ * Re-exports from main types + repo-specific interfaces.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fractary/faber - Spec Module
3
+ *
4
+ * Specification management for FABER workflows.
5
+ */
6
+ export { SpecManager } from './manager';
7
+ export * from './types';
8
+ export { getTemplate, listTemplates, templates } from './templates';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spec/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/faber - Spec Module
4
+ *
5
+ * Specification management for FABER workflows.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.templates = exports.listTemplates = exports.getTemplate = exports.SpecManager = void 0;
23
+ var manager_1 = require("./manager");
24
+ Object.defineProperty(exports, "SpecManager", { enumerable: true, get: function () { return manager_1.SpecManager; } });
25
+ __exportStar(require("./types"), exports);
26
+ var templates_1 = require("./templates");
27
+ Object.defineProperty(exports, "getTemplate", { enumerable: true, get: function () { return templates_1.getTemplate; } });
28
+ Object.defineProperty(exports, "listTemplates", { enumerable: true, get: function () { return templates_1.listTemplates; } });
29
+ Object.defineProperty(exports, "templates", { enumerable: true, get: function () { return templates_1.templates; } });
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/spec/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,0CAAwB;AACxB,yCAAoE;AAA3D,wGAAA,WAAW,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,sGAAA,SAAS,OAAA"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * @fractary/faber - Spec Manager
3
+ *
4
+ * Specification management for FABER workflows.
5
+ */
6
+ import { SpecConfig, Specification, SpecMetadata, SpecCreateOptions, SpecListOptions, SpecValidateResult, SpecRefineResult, WorkType, PhaseUpdateOptions } from './types';
7
+ /**
8
+ * Specification Manager
9
+ */
10
+ export declare class SpecManager {
11
+ private config;
12
+ private specsDir;
13
+ constructor(config?: Partial<SpecConfig>);
14
+ /**
15
+ * Get default spec configuration
16
+ */
17
+ private getDefaultSpecConfig;
18
+ /**
19
+ * Merge partial config with defaults
20
+ */
21
+ private mergeWithDefaults;
22
+ /**
23
+ * Ensure specs directory exists
24
+ */
25
+ private ensureSpecsDir;
26
+ /**
27
+ * Get spec file path
28
+ */
29
+ private getSpecPath;
30
+ /**
31
+ * Create a new specification
32
+ */
33
+ createSpec(title: string, options?: SpecCreateOptions): Specification;
34
+ /**
35
+ * Get a specification by ID or path
36
+ */
37
+ getSpec(idOrPath: string): Specification | null;
38
+ /**
39
+ * Update a specification
40
+ */
41
+ updateSpec(idOrPath: string, updates: {
42
+ title?: string;
43
+ content?: string;
44
+ workId?: string;
45
+ workType?: WorkType;
46
+ validationStatus?: SpecMetadata['validation_status'];
47
+ }): Specification;
48
+ /**
49
+ * Delete a specification
50
+ */
51
+ deleteSpec(idOrPath: string): boolean;
52
+ /**
53
+ * List all specifications
54
+ */
55
+ listSpecs(options?: SpecListOptions): Specification[];
56
+ /**
57
+ * Update a phase in a specification
58
+ */
59
+ updatePhase(specIdOrPath: string, phaseId: string, updates: PhaseUpdateOptions): Specification;
60
+ /**
61
+ * Complete a task in a phase
62
+ */
63
+ completeTask(specIdOrPath: string, phaseId: string, taskIndex: number): Specification;
64
+ /**
65
+ * Add a task to a phase
66
+ */
67
+ addTask(specIdOrPath: string, phaseId: string, taskText: string): Specification;
68
+ /**
69
+ * Validate a specification
70
+ */
71
+ validateSpec(specIdOrPath: string): SpecValidateResult;
72
+ /**
73
+ * Generate refinement questions for a spec
74
+ */
75
+ generateRefinementQuestions(specIdOrPath: string): Array<{
76
+ id: string;
77
+ question: string;
78
+ category: string;
79
+ priority: 'high' | 'medium' | 'low';
80
+ }>;
81
+ /**
82
+ * Apply refinements to a spec
83
+ */
84
+ refineSpec(specIdOrPath: string, answers: Record<string, string>): SpecRefineResult;
85
+ /**
86
+ * Infer work type from template type
87
+ */
88
+ private inferWorkType;
89
+ /**
90
+ * Update phase content in spec
91
+ */
92
+ private updatePhaseInContent;
93
+ /**
94
+ * Update tasks in content
95
+ */
96
+ private updateTasksInContent;
97
+ /**
98
+ * Get available templates
99
+ */
100
+ getTemplates(): Array<{
101
+ id: string;
102
+ name: string;
103
+ description: string;
104
+ }>;
105
+ }
106
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/spec/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EAGZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAEhB,QAAQ,EACR,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAgIjB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;IAWxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa;IAqCrE;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAW/C;;OAEG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,gBAAgB,CAAC,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;KACtD,GACA,aAAa;IAgChB;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAWrC;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,EAAE;IAuCrD;;OAEG;IACH,WAAW,CACT,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC1B,aAAa;IAgChB;;OAEG;IACH,YAAY,CACV,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,aAAa;IAmChB;;OAEG;IACH,OAAO,CACL,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,aAAa;IA8BhB;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB;IA0GtD;;OAEG;IACH,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;QACvD,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KACrC,CAAC;IA4DF;;OAEG;IACH,UAAU,CACR,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,gBAAgB;IAqCnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoC5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAOzE"}