@autocode-cli/autocode 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +27 -0
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +9 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +91 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +2 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/core/catalog.d.ts +52 -0
- package/dist/core/catalog.d.ts.map +1 -0
- package/dist/core/catalog.js +101 -0
- package/dist/core/catalog.js.map +1 -0
- package/dist/core/column.d.ts +2 -1
- package/dist/core/column.d.ts.map +1 -1
- package/dist/core/column.js +23 -11
- package/dist/core/column.js.map +1 -1
- package/dist/core/pipeline.d.ts +70 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +199 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/sync.d.ts +41 -0
- package/dist/core/sync.d.ts.map +1 -0
- package/dist/core/sync.js +269 -0
- package/dist/core/sync.js.map +1 -0
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +330 -6
- package/dist/server/api.js.map +1 -1
- package/dist/server/dashboard/pages/index.d.ts +1 -0
- package/dist/server/dashboard/pages/index.d.ts.map +1 -1
- package/dist/server/dashboard/pages/index.js +1 -0
- package/dist/server/dashboard/pages/index.js.map +1 -1
- package/dist/server/dashboard/pages/main-dashboard.d.ts.map +1 -1
- package/dist/server/dashboard/pages/main-dashboard.js +2 -1
- package/dist/server/dashboard/pages/main-dashboard.js.map +1 -1
- package/dist/server/dashboard/pages/pipeline-configurator.d.ts +8 -0
- package/dist/server/dashboard/pages/pipeline-configurator.d.ts.map +1 -0
- package/dist/server/dashboard/pages/pipeline-configurator.js +1570 -0
- package/dist/server/dashboard/pages/pipeline-configurator.js.map +1 -0
- package/dist/server/dashboard/pages/water-quality-form.d.ts +10 -0
- package/dist/server/dashboard/pages/water-quality-form.d.ts.map +1 -0
- package/dist/server/dashboard/pages/water-quality-form.js +910 -0
- package/dist/server/dashboard/pages/water-quality-form.js.map +1 -0
- package/dist/server/dashboard/styles/base.d.ts.map +1 -1
- package/dist/server/dashboard/styles/base.js +11 -0
- package/dist/server/dashboard/styles/base.js.map +1 -1
- package/dist/server/dashboard.d.ts +1 -1
- package/dist/server/dashboard.d.ts.map +1 -1
- package/dist/server/dashboard.js +1 -1
- package/dist/server/dashboard.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +16 -1
- package/dist/server/index.js.map +1 -1
- package/dist/services/claude.d.ts +2 -1
- package/dist/services/claude.d.ts.map +1 -1
- package/dist/services/claude.js +8 -1
- package/dist/services/claude.js.map +1 -1
- package/dist/types/index.d.ts +67 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/templates/catalog.yaml +99 -0
- package/templates/prompts/changelog.en.md +31 -0
- package/templates/prompts/changelog.fr.md +31 -0
- package/templates/prompts/deploy-prod.en.md +32 -0
- package/templates/prompts/deploy-prod.fr.md +32 -0
- package/templates/prompts/design.en.md +30 -0
- package/templates/prompts/design.fr.md +30 -0
- package/templates/prompts/dev.en.md +31 -0
- package/templates/prompts/dev.fr.md +31 -0
- package/templates/prompts/git-commit.en.md +35 -0
- package/templates/prompts/git-commit.fr.md +35 -0
- package/templates/prompts/git-push.en.md +31 -0
- package/templates/prompts/git-push.fr.md +31 -0
- package/templates/prompts/git-tag.en.md +32 -0
- package/templates/prompts/git-tag.fr.md +32 -0
- package/templates/prompts/qualification.en.md +30 -0
- package/templates/prompts/qualification.fr.md +30 -0
- package/templates/prompts/retest.en.md +31 -0
- package/templates/prompts/retest.fr.md +31 -0
- package/templates/prompts/review-code.en.md +31 -0
- package/templates/prompts/review-code.fr.md +31 -0
- package/templates/prompts/specification.en.md +30 -0
- package/templates/prompts/specification.fr.md +30 -0
- package/templates/prompts/testing-integration.en.md +32 -0
- package/templates/prompts/testing-integration.fr.md +32 -0
- package/templates/prompts/testing-unit.en.md +32 -0
- package/templates/prompts/testing-unit.fr.md +32 -0
- /package/templates/{columns/00_backlog.en.md → prompts/backlog.en.md} +0 -0
- /package/templates/{columns/00_backlog.fr.md → prompts/backlog.fr.md} +0 -0
- /package/templates/{columns/12_deploy-staging.en.md → prompts/deploy-staging.en.md} +0 -0
- /package/templates/{columns/12_deploy-staging.fr.md → prompts/deploy-staging.fr.md} +0 -0
- /package/templates/{columns/14_done.en.md → prompts/done.en.md} +0 -0
- /package/templates/{columns/14_done.fr.md → prompts/done.fr.md} +0 -0
- /package/templates/{columns/02_in-progress.en.md → prompts/in-progress.en.md} +0 -0
- /package/templates/{columns/02_in-progress.fr.md → prompts/in-progress.fr.md} +0 -0
- /package/templates/{columns/01_ready.en.md → prompts/ready.en.md} +0 -0
- /package/templates/{columns/01_ready.fr.md → prompts/ready.fr.md} +0 -0
- /package/templates/{columns/10_retest-cypress.en.md → prompts/retest-cypress.en.md} +0 -0
- /package/templates/{columns/10_retest-cypress.fr.md → prompts/retest-cypress.fr.md} +0 -0
- /package/templates/{columns/09_retest-playwright.en.md → prompts/retest-playwright.en.md} +0 -0
- /package/templates/{columns/09_retest-playwright.fr.md → prompts/retest-playwright.fr.md} +0 -0
- /package/templates/{columns/05_review-best-practices.en.md → prompts/review-best-practices.en.md} +0 -0
- /package/templates/{columns/05_review-best-practices.fr.md → prompts/review-best-practices.fr.md} +0 -0
- /package/templates/{columns/07_review-consistency.en.md → prompts/review-consistency.en.md} +0 -0
- /package/templates/{columns/07_review-consistency.fr.md → prompts/review-consistency.fr.md} +0 -0
- /package/templates/{columns/06_review-no-duplication.en.md → prompts/review-no-duplication.en.md} +0 -0
- /package/templates/{columns/06_review-no-duplication.fr.md → prompts/review-no-duplication.fr.md} +0 -0
- /package/templates/{columns/08_review-security.en.md → prompts/review-security.en.md} +0 -0
- /package/templates/{columns/08_review-security.fr.md → prompts/review-security.fr.md} +0 -0
- /package/templates/{columns/04_testing-cypress.en.md → prompts/testing-cypress.en.md} +0 -0
- /package/templates/{columns/04_testing-cypress.fr.md → prompts/testing-cypress.fr.md} +0 -0
- /package/templates/{columns/03_testing-playwright.en.md → prompts/testing-playwright.en.md} +0 -0
- /package/templates/{columns/03_testing-playwright.fr.md → prompts/testing-playwright.fr.md} +0 -0
- /package/templates/{columns/11_update-docs.en.md → prompts/update-docs.en.md} +0 -0
- /package/templates/{columns/11_update-docs.fr.md → prompts/update-docs.fr.md} +0 -0
- /package/templates/{columns/13_validate-staging.en.md → prompts/validate-staging.en.md} +0 -0
- /package/templates/{columns/13_validate-staging.fr.md → prompts/validate-staging.fr.md} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CA8EtC"}
|
|
@@ -8,6 +8,8 @@ import { ensureColumnStructure, copyActionTemplates } from '../../core/column.js
|
|
|
8
8
|
import { ensureDir, pathExists, writeFileSafe } from '../../utils/fs.js';
|
|
9
9
|
import { join } from 'node:path';
|
|
10
10
|
import { logger } from '../../utils/logger.js';
|
|
11
|
+
import { pipelineExists } from '../../core/pipeline.js';
|
|
12
|
+
import { hasTransitionTickets, getTransitionTickets, applySync, previewSync } from '../../core/sync.js';
|
|
11
13
|
/**
|
|
12
14
|
* Kill any process using the specified port
|
|
13
15
|
*/
|
|
@@ -62,6 +64,31 @@ export function serveCommand() {
|
|
|
62
64
|
}
|
|
63
65
|
// Kill any existing process on the port
|
|
64
66
|
killPortProcess(port);
|
|
67
|
+
// If pipeline.yml exists, check for sync and transition tickets
|
|
68
|
+
if (pipelineExists()) {
|
|
69
|
+
// Check for needed sync
|
|
70
|
+
const changes = previewSync(config.root);
|
|
71
|
+
const needsSync = changes.added.length > 0 || changes.removed.length > 0 || changes.renamed.length > 0;
|
|
72
|
+
if (needsSync) {
|
|
73
|
+
logger.warn('Pipeline sync needed. Applying changes...');
|
|
74
|
+
const result = applySync(config.root);
|
|
75
|
+
if (result.added.length > 0)
|
|
76
|
+
logger.info(` → Created ${result.added.length} folder(s)`);
|
|
77
|
+
if (result.removed.length > 0)
|
|
78
|
+
logger.info(` → Archived ${result.removed.length} folder(s)`);
|
|
79
|
+
if (result.renamed.length > 0)
|
|
80
|
+
logger.info(` → Renamed ${result.renamed.length} folder(s)`);
|
|
81
|
+
}
|
|
82
|
+
// Check for transition tickets
|
|
83
|
+
if (hasTransitionTickets(config.root)) {
|
|
84
|
+
const transitionTickets = getTransitionTickets(config.root);
|
|
85
|
+
logger.warn('');
|
|
86
|
+
logger.warn(`⚠️ ${transitionTickets.length} ticket(s) in _transition!`);
|
|
87
|
+
logger.warn(' These tickets need to be reassigned to a column.');
|
|
88
|
+
logger.warn(' Go to /settings/pipeline/configurator to resolve them.');
|
|
89
|
+
logger.warn('');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
65
92
|
logger.info(`Starting dashboard server...`);
|
|
66
93
|
logger.info(` → Port: ${port}`);
|
|
67
94
|
logger.info(` → Root: ${config.root}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAmGrC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sync command - Synchronize pipeline with folder structure
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { getConfig } from '../../utils/config.js';
|
|
6
|
+
import { pipelineExists } from '../../core/pipeline.js';
|
|
7
|
+
import { previewSync, applySync } from '../../core/sync.js';
|
|
8
|
+
import { logger } from '../../utils/logger.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create the sync command
|
|
11
|
+
*/
|
|
12
|
+
export function syncCommand() {
|
|
13
|
+
const cmd = new Command('sync');
|
|
14
|
+
cmd
|
|
15
|
+
.description('Synchronize folder structure with pipeline.yml')
|
|
16
|
+
.option('-p, --preview', 'Preview changes without applying them')
|
|
17
|
+
.option('-f, --force', 'Apply changes without confirmation')
|
|
18
|
+
.action((options) => {
|
|
19
|
+
const config = getConfig();
|
|
20
|
+
// Check if pipeline.yml exists
|
|
21
|
+
if (!pipelineExists()) {
|
|
22
|
+
logger.error('No pipeline.yml found. Run `autocode serve` to configure your pipeline.');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
// Preview changes
|
|
26
|
+
const changes = previewSync(config.root);
|
|
27
|
+
// Check if there are any changes
|
|
28
|
+
const hasChanges = changes.added.length > 0 ||
|
|
29
|
+
changes.removed.length > 0 ||
|
|
30
|
+
changes.renamed.length > 0;
|
|
31
|
+
if (!hasChanges) {
|
|
32
|
+
logger.success('Folder structure is already in sync with pipeline.yml');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Display changes
|
|
36
|
+
logger.info('Changes detected:');
|
|
37
|
+
if (changes.added.length > 0) {
|
|
38
|
+
logger.info(` + Folders to create: ${changes.added.join(', ')}`);
|
|
39
|
+
}
|
|
40
|
+
if (changes.removed.length > 0) {
|
|
41
|
+
logger.warn(` - Folders to archive: ${changes.removed.join(', ')}`);
|
|
42
|
+
}
|
|
43
|
+
if (changes.renamed.length > 0) {
|
|
44
|
+
logger.info(` ~ Folders to rename:`);
|
|
45
|
+
for (const r of changes.renamed) {
|
|
46
|
+
logger.info(` ${r.from} → ${r.to}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (changes.transitioned.length > 0) {
|
|
50
|
+
logger.warn(` ⚠ Tickets to move to _transition: ${changes.transitioned.join(', ')}`);
|
|
51
|
+
}
|
|
52
|
+
// If preview only, stop here
|
|
53
|
+
if (options.preview) {
|
|
54
|
+
logger.info('');
|
|
55
|
+
logger.info('Run without --preview to apply these changes.');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Apply changes
|
|
59
|
+
if (!options.force) {
|
|
60
|
+
logger.info('');
|
|
61
|
+
logger.warn('Use --force to apply changes, or review them first with --preview');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
logger.info('');
|
|
65
|
+
logger.info('Applying changes...');
|
|
66
|
+
const result = applySync(config.root);
|
|
67
|
+
// Report results
|
|
68
|
+
if (result.errors.length > 0) {
|
|
69
|
+
logger.error('Some errors occurred:');
|
|
70
|
+
for (const error of result.errors) {
|
|
71
|
+
logger.error(` ${error}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (result.added.length > 0) {
|
|
75
|
+
logger.success(`Created ${result.added.length} folder(s)`);
|
|
76
|
+
}
|
|
77
|
+
if (result.removed.length > 0) {
|
|
78
|
+
logger.success(`Archived ${result.removed.length} folder(s)`);
|
|
79
|
+
}
|
|
80
|
+
if (result.renamed.length > 0) {
|
|
81
|
+
logger.success(`Renamed ${result.renamed.length} folder(s)`);
|
|
82
|
+
}
|
|
83
|
+
if (result.transitioned.length > 0) {
|
|
84
|
+
logger.warn(`Moved ${result.transitioned.length} ticket(s) to _transition`);
|
|
85
|
+
logger.info('Use the web dashboard to resolve these tickets.');
|
|
86
|
+
}
|
|
87
|
+
logger.success('Sync complete!');
|
|
88
|
+
});
|
|
89
|
+
return cmd;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/cli/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAiCvC;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE"}
|
package/dist/cli/parser.js
CHANGED
|
@@ -10,6 +10,7 @@ import { moveCommand } from './commands/move.js';
|
|
|
10
10
|
import { nextCommand } from './commands/next.js';
|
|
11
11
|
import { commentCommand } from './commands/comment.js';
|
|
12
12
|
import { serveCommand } from './commands/serve.js';
|
|
13
|
+
import { syncCommand } from './commands/sync.js';
|
|
13
14
|
import { getCurrentVersion, checkAndNotify } from '../utils/version-check.js';
|
|
14
15
|
/**
|
|
15
16
|
* Create and configure the CLI program
|
|
@@ -29,6 +30,7 @@ export function createProgram() {
|
|
|
29
30
|
program.addCommand(nextCommand());
|
|
30
31
|
program.addCommand(commentCommand());
|
|
31
32
|
program.addCommand(serveCommand());
|
|
33
|
+
program.addCommand(syncCommand());
|
|
32
34
|
// Shortcut: autocode AC-000001 => show
|
|
33
35
|
program
|
|
34
36
|
.argument('[key]', 'Ticket key to show details')
|
package/dist/cli/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,mDAAmD,CAAC;SAChE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEhC,oBAAoB;IACpB,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,mDAAmD,CAAC;SAChE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEhC,oBAAoB;IACpB,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAElC,uCAAuC;IACvC,OAAO;SACJ,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;SAC/C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,+BAA+B;YAC/B,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI;IACxD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catalog management
|
|
3
|
+
* Handles loading and querying the column catalog
|
|
4
|
+
*/
|
|
5
|
+
import type { Catalog, CatalogColumn, PipelineSegment } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Get the path to the catalog file
|
|
8
|
+
*/
|
|
9
|
+
export declare function getCatalogPath(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Load the column catalog
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadCatalog(): Catalog;
|
|
14
|
+
/**
|
|
15
|
+
* Get available columns for a segment
|
|
16
|
+
*/
|
|
17
|
+
export declare function getColumnsForSegment(segment: PipelineSegment): CatalogColumn[];
|
|
18
|
+
/**
|
|
19
|
+
* Get all available columns from all segments
|
|
20
|
+
*/
|
|
21
|
+
export declare function getAllCatalogColumns(): {
|
|
22
|
+
segment: PipelineSegment;
|
|
23
|
+
columns: CatalogColumn[];
|
|
24
|
+
}[];
|
|
25
|
+
/**
|
|
26
|
+
* Check if a slug is valid for a segment
|
|
27
|
+
*/
|
|
28
|
+
export declare function isValidColumnForSegment(slug: string, segment: PipelineSegment): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Find a column in the catalog by slug
|
|
31
|
+
*/
|
|
32
|
+
export declare function findCatalogColumn(slug: string): {
|
|
33
|
+
column: CatalogColumn;
|
|
34
|
+
segment: PipelineSegment;
|
|
35
|
+
} | null;
|
|
36
|
+
/**
|
|
37
|
+
* Get segment description
|
|
38
|
+
*/
|
|
39
|
+
export declare function getSegmentDescription(segment: PipelineSegment): string;
|
|
40
|
+
/**
|
|
41
|
+
* Reset the catalog cache
|
|
42
|
+
*/
|
|
43
|
+
export declare function resetCatalog(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get the path to a prompt file for a column
|
|
46
|
+
*/
|
|
47
|
+
export declare function getPromptPath(slug: string, lang: 'en' | 'fr'): string;
|
|
48
|
+
/**
|
|
49
|
+
* Get prompt content for a column
|
|
50
|
+
*/
|
|
51
|
+
export declare function getPromptContent(slug: string, lang: 'en' | 'fr'): string | null;
|
|
52
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/core/catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMjF;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAarC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,EAAE,CAG9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,EAAE,CAO/F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAKvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAY1G;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAGtE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAK/E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catalog management
|
|
3
|
+
* Handles loading and querying the column catalog
|
|
4
|
+
*/
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
7
|
+
import { parse as parseYaml } from 'yaml';
|
|
8
|
+
import { getTemplatesDir } from '../utils/config.js';
|
|
9
|
+
const CATALOG_FILENAME = 'catalog.yaml';
|
|
10
|
+
let cachedCatalog = null;
|
|
11
|
+
/**
|
|
12
|
+
* Get the path to the catalog file
|
|
13
|
+
*/
|
|
14
|
+
export function getCatalogPath() {
|
|
15
|
+
return join(getTemplatesDir(), CATALOG_FILENAME);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Load the column catalog
|
|
19
|
+
*/
|
|
20
|
+
export function loadCatalog() {
|
|
21
|
+
if (cachedCatalog)
|
|
22
|
+
return cachedCatalog;
|
|
23
|
+
const catalogPath = getCatalogPath();
|
|
24
|
+
if (!existsSync(catalogPath)) {
|
|
25
|
+
throw new Error(`Catalog not found: ${catalogPath}`);
|
|
26
|
+
}
|
|
27
|
+
const content = readFileSync(catalogPath, 'utf-8');
|
|
28
|
+
cachedCatalog = parseYaml(content);
|
|
29
|
+
return cachedCatalog;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get available columns for a segment
|
|
33
|
+
*/
|
|
34
|
+
export function getColumnsForSegment(segment) {
|
|
35
|
+
const catalog = loadCatalog();
|
|
36
|
+
return catalog.segments[segment].columns;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get all available columns from all segments
|
|
40
|
+
*/
|
|
41
|
+
export function getAllCatalogColumns() {
|
|
42
|
+
const catalog = loadCatalog();
|
|
43
|
+
return [
|
|
44
|
+
{ segment: 'definition', columns: catalog.segments.definition.columns },
|
|
45
|
+
{ segment: 'action', columns: catalog.segments.action.columns },
|
|
46
|
+
{ segment: 'finish', columns: catalog.segments.finish.columns },
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if a slug is valid for a segment
|
|
51
|
+
*/
|
|
52
|
+
export function isValidColumnForSegment(slug, segment) {
|
|
53
|
+
const columns = getColumnsForSegment(segment);
|
|
54
|
+
// Remove numeric prefix for comparison
|
|
55
|
+
const baseSlug = slug.replace(/^\d{2}_/, '');
|
|
56
|
+
return columns.some(c => c.slug === baseSlug);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Find a column in the catalog by slug
|
|
60
|
+
*/
|
|
61
|
+
export function findCatalogColumn(slug) {
|
|
62
|
+
const baseSlug = slug.replace(/^\d{2}_/, '');
|
|
63
|
+
const catalog = loadCatalog();
|
|
64
|
+
for (const segment of ['definition', 'action', 'finish']) {
|
|
65
|
+
const column = catalog.segments[segment].columns.find(c => c.slug === baseSlug);
|
|
66
|
+
if (column) {
|
|
67
|
+
return { column, segment };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get segment description
|
|
74
|
+
*/
|
|
75
|
+
export function getSegmentDescription(segment) {
|
|
76
|
+
const catalog = loadCatalog();
|
|
77
|
+
return catalog.segments[segment].description;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Reset the catalog cache
|
|
81
|
+
*/
|
|
82
|
+
export function resetCatalog() {
|
|
83
|
+
cachedCatalog = null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get the path to a prompt file for a column
|
|
87
|
+
*/
|
|
88
|
+
export function getPromptPath(slug, lang) {
|
|
89
|
+
const baseSlug = slug.replace(/^\d{2}_/, ''); // Remove numeric prefix
|
|
90
|
+
return join(getTemplatesDir(), 'prompts', `${baseSlug}.${lang}.md`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get prompt content for a column
|
|
94
|
+
*/
|
|
95
|
+
export function getPromptContent(slug, lang) {
|
|
96
|
+
const promptPath = getPromptPath(slug, lang);
|
|
97
|
+
if (!existsSync(promptPath))
|
|
98
|
+
return null;
|
|
99
|
+
return readFileSync(promptPath, 'utf-8');
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/core/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/core/column.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type { Column, Language } from '../types/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* Get all column definitions
|
|
7
|
+
* Uses pipeline if available, otherwise falls back to hardcoded COLUMNS
|
|
7
8
|
*/
|
|
8
9
|
export declare function getColumns(): Column[];
|
|
9
10
|
/**
|
|
@@ -43,7 +44,7 @@ export declare function ensureColumnStructure(rootDir: string): void;
|
|
|
43
44
|
*/
|
|
44
45
|
export declare function scanColumns(rootDir: string, lang?: Language): Column[];
|
|
45
46
|
/**
|
|
46
|
-
* Check if column is actionable (not
|
|
47
|
+
* Check if column is actionable (not first or last column)
|
|
47
48
|
*/
|
|
48
49
|
export declare function isActionableColumn(slug: string): boolean;
|
|
49
50
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/core/column.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/core/column.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAQrC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAU1F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,QAAe,GAAG,MAAM,CAapG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAQ3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,QAAe,GAAG,MAAM,EAAE,CAQ5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,QAAe,GAAG,IAAI,CAoBhF"}
|
package/dist/core/column.js
CHANGED
|
@@ -4,29 +4,37 @@
|
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { COLUMNS, getTemplatesDir } from '../utils/config.js';
|
|
6
6
|
import { ensureDir, readFileSafe, pathExists, listDirs, copyFile } from '../utils/fs.js';
|
|
7
|
+
import { pipelineExists, getActiveColumns } from './pipeline.js';
|
|
7
8
|
/**
|
|
8
9
|
* Get all column definitions
|
|
10
|
+
* Uses pipeline if available, otherwise falls back to hardcoded COLUMNS
|
|
9
11
|
*/
|
|
10
12
|
export function getColumns() {
|
|
13
|
+
if (pipelineExists()) {
|
|
14
|
+
const pipelineColumns = getActiveColumns();
|
|
15
|
+
if (pipelineColumns.length > 0) {
|
|
16
|
+
return pipelineColumns;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
11
19
|
return [...COLUMNS];
|
|
12
20
|
}
|
|
13
21
|
/**
|
|
14
22
|
* Get a column by its slug
|
|
15
23
|
*/
|
|
16
24
|
export function getColumnBySlug(slug) {
|
|
17
|
-
return
|
|
25
|
+
return getColumns().find(c => c.slug === slug);
|
|
18
26
|
}
|
|
19
27
|
/**
|
|
20
28
|
* Get a column by its name
|
|
21
29
|
*/
|
|
22
30
|
export function getColumnByName(name) {
|
|
23
|
-
return
|
|
31
|
+
return getColumns().find(c => c.name.toLowerCase() === name.toLowerCase());
|
|
24
32
|
}
|
|
25
33
|
/**
|
|
26
34
|
* Get a column by its index
|
|
27
35
|
*/
|
|
28
36
|
export function getColumnByIndex(index) {
|
|
29
|
-
return
|
|
37
|
+
return getColumns().find(c => c.index === index);
|
|
30
38
|
}
|
|
31
39
|
/**
|
|
32
40
|
* Get the next column in the workflow
|
|
@@ -78,7 +86,7 @@ export function getColumnNameFromAction(rootDir, slug, lang = 'en') {
|
|
|
78
86
|
* Ensure all column directories exist
|
|
79
87
|
*/
|
|
80
88
|
export function ensureColumnStructure(rootDir) {
|
|
81
|
-
for (const column of
|
|
89
|
+
for (const column of getColumns()) {
|
|
82
90
|
const columnDir = join(rootDir, column.slug);
|
|
83
91
|
const ticketsDir = join(columnDir, 'tickets');
|
|
84
92
|
ensureDir(columnDir);
|
|
@@ -97,26 +105,30 @@ export function scanColumns(rootDir, lang = 'en') {
|
|
|
97
105
|
}));
|
|
98
106
|
}
|
|
99
107
|
/**
|
|
100
|
-
* Check if column is actionable (not
|
|
108
|
+
* Check if column is actionable (not first or last column)
|
|
101
109
|
*/
|
|
102
110
|
export function isActionableColumn(slug) {
|
|
111
|
+
const columns = getColumns();
|
|
103
112
|
const col = getColumnBySlug(slug);
|
|
104
113
|
if (!col)
|
|
105
114
|
return false;
|
|
106
|
-
// Skip
|
|
107
|
-
|
|
115
|
+
// Skip first column (backlog) and last column (done)
|
|
116
|
+
const maxIndex = columns.length - 1;
|
|
117
|
+
return col.index > 0 && col.index < maxIndex;
|
|
108
118
|
}
|
|
109
119
|
/**
|
|
110
120
|
* Copy ACTION.md templates for all columns
|
|
111
121
|
*/
|
|
112
122
|
export function copyActionTemplates(rootDir, lang = 'en') {
|
|
113
|
-
const
|
|
114
|
-
for (const column of
|
|
123
|
+
const promptsDir = join(getTemplatesDir(), 'prompts');
|
|
124
|
+
for (const column of getColumns()) {
|
|
115
125
|
const columnDir = join(rootDir, column.slug);
|
|
116
|
-
//
|
|
126
|
+
// Remove numeric prefix (e.g., 02_in-progress -> in-progress)
|
|
127
|
+
const baseSlug = column.slug.replace(/^\d{2}_/, '');
|
|
128
|
+
// Copy both EN and FR templates
|
|
117
129
|
const languages = ['en', 'fr'];
|
|
118
130
|
for (const l of languages) {
|
|
119
|
-
const templateFile = join(
|
|
131
|
+
const templateFile = join(promptsDir, `${baseSlug}.${l}.md`);
|
|
120
132
|
const targetFile = join(columnDir, `ACTION.${l}.md`);
|
|
121
133
|
// Only copy if template exists and target doesn't
|
|
122
134
|
if (pathExists(templateFile) && !pathExists(targetFile)) {
|
package/dist/core/column.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/core/column.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/core/column.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline management
|
|
3
|
+
* Handles loading, saving, and switching pipelines
|
|
4
|
+
*/
|
|
5
|
+
import type { Pipeline, PipelinesConfig, Column } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Get the path to the pipeline file
|
|
8
|
+
*/
|
|
9
|
+
export declare function getPipelinePath(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Check if the pipeline file exists
|
|
12
|
+
*/
|
|
13
|
+
export declare function pipelineExists(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Load the pipelines configuration
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadPipelinesConfig(): PipelinesConfig | null;
|
|
18
|
+
/**
|
|
19
|
+
* Save the pipelines configuration
|
|
20
|
+
*/
|
|
21
|
+
export declare function savePipelinesConfig(config: PipelinesConfig): void;
|
|
22
|
+
/**
|
|
23
|
+
* Get the active pipeline
|
|
24
|
+
*/
|
|
25
|
+
export declare function getActivePipeline(): Pipeline | null;
|
|
26
|
+
/**
|
|
27
|
+
* Get the name of the active pipeline
|
|
28
|
+
*/
|
|
29
|
+
export declare function getActivePipelineName(): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Set the active pipeline
|
|
32
|
+
*/
|
|
33
|
+
export declare function setActivePipeline(name: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Get all columns from the active pipeline (with index)
|
|
36
|
+
*/
|
|
37
|
+
export declare function getActiveColumns(): Column[];
|
|
38
|
+
/**
|
|
39
|
+
* Get the expected folder slugs from the active pipeline
|
|
40
|
+
*/
|
|
41
|
+
export declare function getExpectedFolderSlugs(): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Create a new pipeline
|
|
44
|
+
*/
|
|
45
|
+
export declare function createPipeline(name: string, pipeline: Pipeline, setActive?: boolean): void;
|
|
46
|
+
/**
|
|
47
|
+
* Update an existing pipeline
|
|
48
|
+
*/
|
|
49
|
+
export declare function updatePipeline(name: string, pipeline: Pipeline): void;
|
|
50
|
+
/**
|
|
51
|
+
* Delete a pipeline
|
|
52
|
+
*/
|
|
53
|
+
export declare function deletePipeline(name: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* List all pipelines
|
|
56
|
+
*/
|
|
57
|
+
export declare function listPipelines(): {
|
|
58
|
+
name: string;
|
|
59
|
+
pipeline: Pipeline;
|
|
60
|
+
isActive: boolean;
|
|
61
|
+
}[];
|
|
62
|
+
/**
|
|
63
|
+
* Create a default pipeline configuration
|
|
64
|
+
*/
|
|
65
|
+
export declare function createDefaultPipelineConfig(): PipelinesConfig;
|
|
66
|
+
/**
|
|
67
|
+
* Reset the pipeline cache
|
|
68
|
+
*/
|
|
69
|
+
export declare function resetPipelineCache(): void;
|
|
70
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAkB,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM3F;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,GAAG,IAAI,CAa5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAKjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,QAAQ,GAAG,IAAI,CAKnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAIrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAgB3C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,UAAQ,GAChB,IAAI,CAiBN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAUrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUjD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,EAAE,CASzF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,CAgC7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|