@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.
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/dist/__tests__/smoke.test.d.ts +7 -0
- package/dist/__tests__/smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke.test.js +132 -0
- package/dist/__tests__/smoke.test.js.map +1 -0
- package/dist/common/config.d.ts +30 -0
- package/dist/common/config.d.ts.map +1 -0
- package/dist/common/config.js +120 -0
- package/dist/common/config.js.map +1 -0
- package/dist/common/errors.d.ts +264 -0
- package/dist/common/errors.d.ts.map +1 -0
- package/dist/common/errors.js +491 -0
- package/dist/common/errors.js.map +1 -0
- package/dist/common/index.d.ts +9 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +25 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/types.d.ts +622 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +8 -0
- package/dist/common/types.js.map +1 -0
- package/dist/docs/index.d.ts +8 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +26 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/manager.d.ts +47 -0
- package/dist/docs/manager.d.ts.map +1 -0
- package/dist/docs/manager.js +250 -0
- package/dist/docs/manager.js.map +1 -0
- package/dist/docs/types.d.ts +113 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +8 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/file/index.d.ts +9 -0
- package/dist/file/index.d.ts.map +1 -0
- package/dist/file/index.js +28 -0
- package/dist/file/index.js.map +1 -0
- package/dist/file/local.d.ts +42 -0
- package/dist/file/local.d.ts.map +1 -0
- package/dist/file/local.js +137 -0
- package/dist/file/local.js.map +1 -0
- package/dist/file/manager.d.ts +42 -0
- package/dist/file/manager.d.ts.map +1 -0
- package/dist/file/manager.js +68 -0
- package/dist/file/manager.js.map +1 -0
- package/dist/file/types.d.ts +52 -0
- package/dist/file/types.d.ts.map +1 -0
- package/dist/file/types.js +8 -0
- package/dist/file/types.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/logs/index.d.ts +8 -0
- package/dist/logs/index.d.ts.map +1 -0
- package/dist/logs/index.js +26 -0
- package/dist/logs/index.js.map +1 -0
- package/dist/logs/manager.d.ts +97 -0
- package/dist/logs/manager.d.ts.map +1 -0
- package/dist/logs/manager.js +584 -0
- package/dist/logs/manager.js.map +1 -0
- package/dist/logs/types.d.ts +45 -0
- package/dist/logs/types.d.ts.map +1 -0
- package/dist/logs/types.js +8 -0
- package/dist/logs/types.js.map +1 -0
- package/dist/repo/git.d.ts +182 -0
- package/dist/repo/git.d.ts.map +1 -0
- package/dist/repo/git.js +496 -0
- package/dist/repo/git.js.map +1 -0
- package/dist/repo/index.d.ts +10 -0
- package/dist/repo/index.d.ts.map +1 -0
- package/dist/repo/index.js +29 -0
- package/dist/repo/index.js.map +1 -0
- package/dist/repo/manager.d.ts +179 -0
- package/dist/repo/manager.d.ts.map +1 -0
- package/dist/repo/manager.js +433 -0
- package/dist/repo/manager.js.map +1 -0
- package/dist/repo/providers/bitbucket.d.ts +48 -0
- package/dist/repo/providers/bitbucket.d.ts.map +1 -0
- package/dist/repo/providers/bitbucket.js +86 -0
- package/dist/repo/providers/bitbucket.js.map +1 -0
- package/dist/repo/providers/github.d.ts +30 -0
- package/dist/repo/providers/github.d.ts.map +1 -0
- package/dist/repo/providers/github.js +311 -0
- package/dist/repo/providers/github.js.map +1 -0
- package/dist/repo/providers/gitlab.d.ts +47 -0
- package/dist/repo/providers/gitlab.d.ts.map +1 -0
- package/dist/repo/providers/gitlab.js +84 -0
- package/dist/repo/providers/gitlab.js.map +1 -0
- package/dist/repo/providers/index.d.ts +9 -0
- package/dist/repo/providers/index.d.ts.map +1 -0
- package/dist/repo/providers/index.js +15 -0
- package/dist/repo/providers/index.js.map +1 -0
- package/dist/repo/types.d.ts +48 -0
- package/dist/repo/types.d.ts.map +1 -0
- package/dist/repo/types.js +8 -0
- package/dist/repo/types.js.map +1 -0
- package/dist/spec/index.d.ts +9 -0
- package/dist/spec/index.d.ts.map +1 -0
- package/dist/spec/index.js +30 -0
- package/dist/spec/index.js.map +1 -0
- package/dist/spec/manager.d.ts +106 -0
- package/dist/spec/manager.d.ts.map +1 -0
- package/dist/spec/manager.js +672 -0
- package/dist/spec/manager.js.map +1 -0
- package/dist/spec/templates.d.ts +28 -0
- package/dist/spec/templates.d.ts.map +1 -0
- package/dist/spec/templates.js +357 -0
- package/dist/spec/templates.js.map +1 -0
- package/dist/spec/types.d.ts +53 -0
- package/dist/spec/types.d.ts.map +1 -0
- package/dist/spec/types.js +8 -0
- package/dist/spec/types.js.map +1 -0
- package/dist/work/index.d.ts +8 -0
- package/dist/work/index.d.ts.map +1 -0
- package/dist/work/index.js +26 -0
- package/dist/work/index.js.map +1 -0
- package/dist/work/manager.d.ts +112 -0
- package/dist/work/manager.d.ts.map +1 -0
- package/dist/work/manager.js +227 -0
- package/dist/work/manager.js.map +1 -0
- package/dist/work/providers/github.d.ts +40 -0
- package/dist/work/providers/github.d.ts.map +1 -0
- package/dist/work/providers/github.js +299 -0
- package/dist/work/providers/github.js.map +1 -0
- package/dist/work/providers/jira.d.ts +60 -0
- package/dist/work/providers/jira.d.ts.map +1 -0
- package/dist/work/providers/jira.js +109 -0
- package/dist/work/providers/jira.js.map +1 -0
- package/dist/work/providers/linear.d.ts +57 -0
- package/dist/work/providers/linear.d.ts.map +1 -0
- package/dist/work/providers/linear.js +103 -0
- package/dist/work/providers/linear.js.map +1 -0
- package/dist/work/types.d.ts +42 -0
- package/dist/work/types.d.ts.map +1 -0
- package/dist/work/types.js +8 -0
- package/dist/work/types.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|