@autocode-cli/autocode 0.1.5 → 0.1.6

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 (118) hide show
  1. package/dist/cli/commands/serve.d.ts.map +1 -1
  2. package/dist/cli/commands/serve.js +27 -0
  3. package/dist/cli/commands/serve.js.map +1 -1
  4. package/dist/cli/commands/sync.d.ts +9 -0
  5. package/dist/cli/commands/sync.d.ts.map +1 -0
  6. package/dist/cli/commands/sync.js +91 -0
  7. package/dist/cli/commands/sync.js.map +1 -0
  8. package/dist/cli/parser.d.ts.map +1 -1
  9. package/dist/cli/parser.js +2 -0
  10. package/dist/cli/parser.js.map +1 -1
  11. package/dist/core/catalog.d.ts +52 -0
  12. package/dist/core/catalog.d.ts.map +1 -0
  13. package/dist/core/catalog.js +101 -0
  14. package/dist/core/catalog.js.map +1 -0
  15. package/dist/core/column.d.ts +2 -1
  16. package/dist/core/column.d.ts.map +1 -1
  17. package/dist/core/column.js +23 -11
  18. package/dist/core/column.js.map +1 -1
  19. package/dist/core/pipeline.d.ts +70 -0
  20. package/dist/core/pipeline.d.ts.map +1 -0
  21. package/dist/core/pipeline.js +199 -0
  22. package/dist/core/pipeline.js.map +1 -0
  23. package/dist/core/sync.d.ts +41 -0
  24. package/dist/core/sync.d.ts.map +1 -0
  25. package/dist/core/sync.js +269 -0
  26. package/dist/core/sync.js.map +1 -0
  27. package/dist/server/api.d.ts.map +1 -1
  28. package/dist/server/api.js +300 -0
  29. package/dist/server/api.js.map +1 -1
  30. package/dist/server/dashboard/pages/index.d.ts +1 -0
  31. package/dist/server/dashboard/pages/index.d.ts.map +1 -1
  32. package/dist/server/dashboard/pages/index.js +1 -0
  33. package/dist/server/dashboard/pages/index.js.map +1 -1
  34. package/dist/server/dashboard/pages/main-dashboard.d.ts.map +1 -1
  35. package/dist/server/dashboard/pages/main-dashboard.js +2 -1
  36. package/dist/server/dashboard/pages/main-dashboard.js.map +1 -1
  37. package/dist/server/dashboard/pages/pipeline-configurator.d.ts +8 -0
  38. package/dist/server/dashboard/pages/pipeline-configurator.d.ts.map +1 -0
  39. package/dist/server/dashboard/pages/pipeline-configurator.js +1531 -0
  40. package/dist/server/dashboard/pages/pipeline-configurator.js.map +1 -0
  41. package/dist/server/dashboard/pages/water-quality-form.d.ts +10 -0
  42. package/dist/server/dashboard/pages/water-quality-form.d.ts.map +1 -0
  43. package/dist/server/dashboard/pages/water-quality-form.js +910 -0
  44. package/dist/server/dashboard/pages/water-quality-form.js.map +1 -0
  45. package/dist/server/dashboard/styles/base.d.ts.map +1 -1
  46. package/dist/server/dashboard/styles/base.js +11 -0
  47. package/dist/server/dashboard/styles/base.js.map +1 -1
  48. package/dist/server/dashboard.d.ts +1 -1
  49. package/dist/server/dashboard.d.ts.map +1 -1
  50. package/dist/server/dashboard.js +1 -1
  51. package/dist/server/dashboard.js.map +1 -1
  52. package/dist/server/index.d.ts.map +1 -1
  53. package/dist/server/index.js +16 -1
  54. package/dist/server/index.js.map +1 -1
  55. package/dist/services/claude.d.ts +2 -1
  56. package/dist/services/claude.d.ts.map +1 -1
  57. package/dist/services/claude.js +8 -1
  58. package/dist/services/claude.js.map +1 -1
  59. package/dist/types/index.d.ts +67 -0
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/package.json +2 -2
  62. package/templates/catalog.yaml +100 -0
  63. package/templates/prompts/changelog.en.md +31 -0
  64. package/templates/prompts/changelog.fr.md +31 -0
  65. package/templates/prompts/deploy-prod.en.md +32 -0
  66. package/templates/prompts/deploy-prod.fr.md +32 -0
  67. package/templates/prompts/design.en.md +30 -0
  68. package/templates/prompts/design.fr.md +30 -0
  69. package/templates/prompts/dev.en.md +31 -0
  70. package/templates/prompts/dev.fr.md +31 -0
  71. package/templates/prompts/git-commit.en.md +35 -0
  72. package/templates/prompts/git-commit.fr.md +35 -0
  73. package/templates/prompts/git-push.en.md +31 -0
  74. package/templates/prompts/git-push.fr.md +31 -0
  75. package/templates/prompts/git-tag.en.md +32 -0
  76. package/templates/prompts/git-tag.fr.md +32 -0
  77. package/templates/prompts/qualification.en.md +30 -0
  78. package/templates/prompts/qualification.fr.md +30 -0
  79. package/templates/prompts/retest.en.md +31 -0
  80. package/templates/prompts/retest.fr.md +31 -0
  81. package/templates/prompts/review-code.en.md +31 -0
  82. package/templates/prompts/review-code.fr.md +31 -0
  83. package/templates/prompts/specification.en.md +30 -0
  84. package/templates/prompts/specification.fr.md +30 -0
  85. package/templates/prompts/testing-integration.en.md +32 -0
  86. package/templates/prompts/testing-integration.fr.md +32 -0
  87. package/templates/prompts/testing-unit.en.md +32 -0
  88. package/templates/prompts/testing-unit.fr.md +32 -0
  89. /package/templates/{columns/00_backlog.en.md → prompts/backlog.en.md} +0 -0
  90. /package/templates/{columns/00_backlog.fr.md → prompts/backlog.fr.md} +0 -0
  91. /package/templates/{columns/12_deploy-staging.en.md → prompts/deploy-staging.en.md} +0 -0
  92. /package/templates/{columns/12_deploy-staging.fr.md → prompts/deploy-staging.fr.md} +0 -0
  93. /package/templates/{columns/14_done.en.md → prompts/done.en.md} +0 -0
  94. /package/templates/{columns/14_done.fr.md → prompts/done.fr.md} +0 -0
  95. /package/templates/{columns/02_in-progress.en.md → prompts/in-progress.en.md} +0 -0
  96. /package/templates/{columns/02_in-progress.fr.md → prompts/in-progress.fr.md} +0 -0
  97. /package/templates/{columns/01_ready.en.md → prompts/ready.en.md} +0 -0
  98. /package/templates/{columns/01_ready.fr.md → prompts/ready.fr.md} +0 -0
  99. /package/templates/{columns/10_retest-cypress.en.md → prompts/retest-cypress.en.md} +0 -0
  100. /package/templates/{columns/10_retest-cypress.fr.md → prompts/retest-cypress.fr.md} +0 -0
  101. /package/templates/{columns/09_retest-playwright.en.md → prompts/retest-playwright.en.md} +0 -0
  102. /package/templates/{columns/09_retest-playwright.fr.md → prompts/retest-playwright.fr.md} +0 -0
  103. /package/templates/{columns/05_review-best-practices.en.md → prompts/review-best-practices.en.md} +0 -0
  104. /package/templates/{columns/05_review-best-practices.fr.md → prompts/review-best-practices.fr.md} +0 -0
  105. /package/templates/{columns/07_review-consistency.en.md → prompts/review-consistency.en.md} +0 -0
  106. /package/templates/{columns/07_review-consistency.fr.md → prompts/review-consistency.fr.md} +0 -0
  107. /package/templates/{columns/06_review-no-duplication.en.md → prompts/review-no-duplication.en.md} +0 -0
  108. /package/templates/{columns/06_review-no-duplication.fr.md → prompts/review-no-duplication.fr.md} +0 -0
  109. /package/templates/{columns/08_review-security.en.md → prompts/review-security.en.md} +0 -0
  110. /package/templates/{columns/08_review-security.fr.md → prompts/review-security.fr.md} +0 -0
  111. /package/templates/{columns/04_testing-cypress.en.md → prompts/testing-cypress.en.md} +0 -0
  112. /package/templates/{columns/04_testing-cypress.fr.md → prompts/testing-cypress.fr.md} +0 -0
  113. /package/templates/{columns/03_testing-playwright.en.md → prompts/testing-playwright.en.md} +0 -0
  114. /package/templates/{columns/03_testing-playwright.fr.md → prompts/testing-playwright.fr.md} +0 -0
  115. /package/templates/{columns/11_update-docs.en.md → prompts/update-docs.en.md} +0 -0
  116. /package/templates/{columns/11_update-docs.fr.md → prompts/update-docs.fr.md} +0 -0
  117. /package/templates/{columns/13_validate-staging.en.md → prompts/validate-staging.en.md} +0 -0
  118. /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;AA8BpC;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAqDtC"}
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":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * sync command - Synchronize pipeline with folder structure
3
+ */
4
+ import { Command } from 'commander';
5
+ /**
6
+ * Create the sync command
7
+ */
8
+ export declare function syncCommand(): Command;
9
+ //# sourceMappingURL=sync.d.ts.map
@@ -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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"}
@@ -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;AAWpC;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAgCvC;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE"}
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"}
@@ -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')
@@ -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;IAEnC,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"}
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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"}
@@ -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 backlog or done)
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;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;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,CAMxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,QAAe,GAAG,IAAI,CAkBhF"}
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"}
@@ -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 COLUMNS.find(c => c.slug === slug);
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 COLUMNS.find(c => c.name.toLowerCase() === name.toLowerCase());
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 COLUMNS.find(c => c.index === index);
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 COLUMNS) {
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 backlog or done)
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 backlog (0) and done (12)
107
- return col.index > 0 && col.index < 12;
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 templatesDir = join(getTemplatesDir(), 'columns');
114
- for (const column of COLUMNS) {
123
+ const promptsDir = join(getTemplatesDir(), 'prompts');
124
+ for (const column of getColumns()) {
115
125
  const columnDir = join(rootDir, column.slug);
116
- // Copy both EN and FR templates (or just the requested language)
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(templatesDir, `${column.slug}.${l}.md`);
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)) {
@@ -1 +1 @@
1
- {"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/core/column.ts"],"names":[],"mappings":"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"}
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;AACzF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjE;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;QAC3C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEtD,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,MAAc,EAAE,KAAK,GAAG,KAAK;IAC/E,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAE/B,+BAA+B;IAC/B,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,IAAY,EAAE,OAAiB,IAAI;IAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,gCAAgC;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9C,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,SAAS,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,OAAiB,IAAI;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAErE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI;QACJ,IAAI,EAAE,uBAAuB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;QAClD,KAAK;KACN,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,qDAAqD;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,OAAiB,IAAI;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,CAAC,CAAC;IAEtD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEpD,gCAAgC;QAChC,MAAM,SAAS,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAErD,kDAAkD;YAClD,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -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"}