@autocode-cli/autocode 0.1.12 → 0.1.14
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/README.md +1 -1
- package/dist/cli/commands/init.js +1 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.js +2 -2
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/move.js +3 -3
- package/dist/cli/commands/move.js.map +1 -1
- package/dist/cli/commands/new.js +3 -3
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/core/column.d.ts +0 -4
- package/dist/core/column.d.ts.map +1 -1
- package/dist/core/column.js +0 -6
- package/dist/core/column.js.map +1 -1
- package/dist/core/ticket.d.ts +1 -1
- package/dist/core/ticket.js +4 -4
- package/dist/core/ticket.js.map +1 -1
- package/dist/core/workflow.d.ts +1 -1
- package/dist/core/workflow.js +4 -4
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +168 -5
- package/dist/server/api.js.map +1 -1
- package/dist/server/dashboard/pages/autocreate.d.ts +9 -0
- package/dist/server/dashboard/pages/autocreate.d.ts.map +1 -0
- package/dist/server/dashboard/pages/autocreate.js +847 -0
- package/dist/server/dashboard/pages/autocreate.js.map +1 -0
- 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/pipeline-configurator.d.ts.map +1 -1
- package/dist/server/dashboard/pages/pipeline-configurator.js +198 -0
- package/dist/server/dashboard/pages/pipeline-configurator.js.map +1 -1
- package/dist/server/dashboard/scripts/index.js +3 -3
- 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 +9 -1
- package/dist/server/index.js.map +1 -1
- package/dist/services/autocreate.d.ts +34 -0
- package/dist/services/autocreate.d.ts.map +1 -0
- package/dist/services/autocreate.js +503 -0
- package/dist/services/autocreate.js.map +1 -0
- package/dist/services/claude.d.ts +4 -1
- package/dist/services/claude.d.ts.map +1 -1
- package/dist/services/claude.js +7 -4
- package/dist/services/claude.js.map +1 -1
- package/dist/types/index.d.ts +49 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/analysis-prompt.en.md +77 -0
- package/templates/analysis-prompt.fr.md +87 -0
- package/templates/catalog.yaml +103 -1
- package/templates/prompts/accessibility-check.en.md +25 -0
- package/templates/prompts/accessibility-check.fr.md +25 -0
- package/templates/prompts/api-endpoints-test.en.md +26 -0
- package/templates/prompts/api-endpoints-test.fr.md +26 -0
- package/templates/prompts/backlog.en.md +8 -19
- package/templates/prompts/backlog.fr.md +8 -19
- package/templates/prompts/build-dist.en.md +20 -0
- package/templates/prompts/build-dist.fr.md +20 -0
- package/templates/prompts/ci-gitlab-validate.en.md +22 -0
- package/templates/prompts/ci-gitlab-validate.fr.md +22 -0
- package/templates/prompts/claude-integration-test.en.md +22 -0
- package/templates/prompts/claude-integration-test.fr.md +22 -0
- package/templates/prompts/cli-smoke-test.en.md +30 -0
- package/templates/prompts/cli-smoke-test.fr.md +30 -0
- package/templates/prompts/dashboard-responsive.en.md +27 -0
- package/templates/prompts/dashboard-responsive.fr.md +27 -0
- package/templates/prompts/dead-code-check.en.md +25 -0
- package/templates/prompts/dead-code-check.fr.md +25 -0
- package/templates/prompts/deps-licenses.en.md +23 -0
- package/templates/prompts/deps-licenses.fr.md +23 -0
- package/templates/prompts/deps-outdated.en.md +23 -0
- package/templates/prompts/deps-outdated.fr.md +23 -0
- package/templates/prompts/design.en.md +2 -2
- package/templates/prompts/design.fr.md +2 -2
- package/templates/prompts/dev.en.md +2 -2
- package/templates/prompts/dev.fr.md +2 -2
- package/templates/prompts/docs-readme-validate.en.md +22 -0
- package/templates/prompts/docs-readme-validate.fr.md +22 -0
- package/templates/prompts/done.en.md +2 -2
- package/templates/prompts/done.fr.md +2 -2
- package/templates/prompts/error-handling-review.en.md +24 -0
- package/templates/prompts/error-handling-review.fr.md +24 -0
- package/templates/prompts/esm-compatibility.en.md +24 -0
- package/templates/prompts/esm-compatibility.fr.md +24 -0
- package/templates/prompts/file-watcher-test.en.md +20 -0
- package/templates/prompts/file-watcher-test.fr.md +20 -0
- package/templates/prompts/format-prettier-setup.en.md +21 -0
- package/templates/prompts/format-prettier-setup.fr.md +21 -0
- package/templates/prompts/git-conventional-commits.en.md +21 -0
- package/templates/prompts/git-conventional-commits.fr.md +21 -0
- package/templates/prompts/git-hooks-setup.en.md +27 -0
- package/templates/prompts/git-hooks-setup.fr.md +27 -0
- package/templates/prompts/graceful-shutdown.en.md +25 -0
- package/templates/prompts/graceful-shutdown.fr.md +25 -0
- package/templates/prompts/i18n-completeness.en.md +21 -0
- package/templates/prompts/i18n-completeness.fr.md +21 -0
- package/templates/prompts/in-progress.en.md +2 -2
- package/templates/prompts/in-progress.fr.md +2 -2
- package/templates/prompts/landing-html-validate.en.md +23 -0
- package/templates/prompts/landing-html-validate.fr.md +23 -0
- package/templates/prompts/lint-eslint-setup.en.md +20 -0
- package/templates/prompts/lint-eslint-setup.fr.md +20 -0
- package/templates/prompts/node-version-check.en.md +21 -0
- package/templates/prompts/node-version-check.fr.md +21 -0
- package/templates/prompts/npm-publish-dry-run.en.md +25 -0
- package/templates/prompts/npm-publish-dry-run.fr.md +25 -0
- package/templates/prompts/pkg-exports-validate.en.md +23 -0
- package/templates/prompts/pkg-exports-validate.fr.md +23 -0
- package/templates/prompts/port-conflict-handling.en.md +22 -0
- package/templates/prompts/port-conflict-handling.fr.md +22 -0
- package/templates/prompts/qualification.en.md +2 -2
- package/templates/prompts/qualification.fr.md +2 -2
- package/templates/prompts/retest-cypress.en.md +2 -6
- package/templates/prompts/retest-cypress.fr.md +2 -6
- package/templates/prompts/retest-playwright.en.md +1 -4
- package/templates/prompts/retest-playwright.fr.md +1 -4
- package/templates/prompts/retest.en.md +1 -4
- package/templates/prompts/retest.fr.md +1 -4
- package/templates/prompts/review-best-practices.en.md +2 -6
- package/templates/prompts/review-best-practices.fr.md +2 -6
- package/templates/prompts/review-code.en.md +2 -6
- package/templates/prompts/review-code.fr.md +2 -6
- package/templates/prompts/review-consistency.en.md +2 -6
- package/templates/prompts/review-consistency.fr.md +2 -6
- package/templates/prompts/review-no-duplication.en.md +2 -6
- package/templates/prompts/review-no-duplication.fr.md +2 -6
- package/templates/prompts/review-security.en.md +2 -2
- package/templates/prompts/review-security.fr.md +2 -2
- package/templates/prompts/security-audit.en.md +20 -0
- package/templates/prompts/security-audit.fr.md +20 -0
- package/templates/prompts/security-secrets.en.md +26 -0
- package/templates/prompts/security-secrets.fr.md +26 -0
- package/templates/prompts/specification.en.md +2 -2
- package/templates/prompts/specification.fr.md +2 -2
- package/templates/prompts/splitter.en.md +3 -4
- package/templates/prompts/splitter.fr.md +3 -4
- package/templates/prompts/template-validation.en.md +23 -0
- package/templates/prompts/template-validation.fr.md +23 -0
- package/templates/prompts/testing-coverage.en.md +20 -0
- package/templates/prompts/testing-coverage.fr.md +20 -0
- package/templates/prompts/testing-cypress.en.md +1 -4
- package/templates/prompts/testing-cypress.fr.md +1 -4
- package/templates/prompts/testing-integration.en.md +1 -4
- package/templates/prompts/testing-integration.fr.md +1 -4
- package/templates/prompts/testing-playwright.en.md +1 -4
- package/templates/prompts/testing-playwright.fr.md +1 -4
- package/templates/prompts/testing-unit.en.md +1 -4
- package/templates/prompts/testing-unit.fr.md +1 -4
- package/templates/prompts/testing-vitest.en.md +17 -0
- package/templates/prompts/testing-vitest.fr.md +17 -0
- package/templates/prompts/typecheck.en.md +17 -0
- package/templates/prompts/typecheck.fr.md +17 -0
- package/templates/prompts/update-docs.en.md +2 -6
- package/templates/prompts/update-docs.fr.md +2 -6
- package/templates/prompts/version-semver.en.md +20 -0
- package/templates/prompts/version-semver.fr.md +20 -0
- package/templates/prompts/websocket-test.en.md +19 -0
- package/templates/prompts/websocket-test.fr.md +19 -0
- package/templates/prompts/yaml-validate.en.md +24 -0
- package/templates/prompts/yaml-validate.fr.md +24 -0
- package/templates/prompts/ready.en.md +0 -31
- package/templates/prompts/ready.fr.md +0 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocreate.js","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/autocreate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO;cACK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAm0BV,CAAC;AACT,CAAC"}
|
|
@@ -9,6 +9,7 @@ export { generateTicketViewPage } from './ticket-view.js';
|
|
|
9
9
|
export { generateColumnTerminalPage } from './column-terminal.js';
|
|
10
10
|
export { generateColumnPromptPage } from './column-prompt.js';
|
|
11
11
|
export { generatePipelineConfiguratorPage } from './pipeline-configurator.js';
|
|
12
|
+
export { generateAutocreatePage } from './autocreate.js';
|
|
12
13
|
export { generateStatsPage } from './stats-page.js';
|
|
13
14
|
export { generate404Page } from './shared.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -9,6 +9,7 @@ export { generateTicketViewPage } from './ticket-view.js';
|
|
|
9
9
|
export { generateColumnTerminalPage } from './column-terminal.js';
|
|
10
10
|
export { generateColumnPromptPage } from './column-prompt.js';
|
|
11
11
|
export { generatePipelineConfiguratorPage } from './pipeline-configurator.js';
|
|
12
|
+
export { generateAutocreatePage } from './autocreate.js';
|
|
12
13
|
export { generateStatsPage } from './stats-page.js';
|
|
13
14
|
export { generate404Page } from './shared.js';
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-configurator.d.ts","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/pipeline-configurator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"pipeline-configurator.d.ts","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/pipeline-configurator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA82DrE"}
|
|
@@ -523,6 +523,53 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
523
523
|
color: white;
|
|
524
524
|
border-color: var(--accent);
|
|
525
525
|
}
|
|
526
|
+
|
|
527
|
+
/* Analysis Modal */
|
|
528
|
+
.analysis-modal {
|
|
529
|
+
max-width: 900px;
|
|
530
|
+
width: 95%;
|
|
531
|
+
max-height: 90vh;
|
|
532
|
+
display: flex;
|
|
533
|
+
flex-direction: column;
|
|
534
|
+
}
|
|
535
|
+
.analysis-content {
|
|
536
|
+
flex: 1;
|
|
537
|
+
overflow-y: auto;
|
|
538
|
+
max-height: 70vh;
|
|
539
|
+
padding: 16px;
|
|
540
|
+
background: var(--bg);
|
|
541
|
+
border: 1px solid var(--border);
|
|
542
|
+
border-radius: 6px;
|
|
543
|
+
font-size: 14px;
|
|
544
|
+
line-height: 1.6;
|
|
545
|
+
}
|
|
546
|
+
.analysis-loading {
|
|
547
|
+
text-align: center;
|
|
548
|
+
padding: 40px;
|
|
549
|
+
color: var(--muted);
|
|
550
|
+
}
|
|
551
|
+
.analysis-error {
|
|
552
|
+
color: var(--red);
|
|
553
|
+
background: rgba(239, 68, 68, 0.1);
|
|
554
|
+
padding: 12px;
|
|
555
|
+
border-radius: 6px;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/* Markdown styles in analysis */
|
|
559
|
+
.analysis-content h1 { font-size: 20px; margin: 20px 0 12px 0; color: var(--accent); border-bottom: 1px solid var(--border); padding-bottom: 8px; }
|
|
560
|
+
.analysis-content h2 { font-size: 17px; margin: 18px 0 10px 0; color: var(--blue); }
|
|
561
|
+
.analysis-content h3 { font-size: 15px; margin: 14px 0 8px 0; color: var(--fg); }
|
|
562
|
+
.analysis-content p { margin: 8px 0; }
|
|
563
|
+
.analysis-content ul, .analysis-content ol { margin: 8px 0; padding-left: 24px; }
|
|
564
|
+
.analysis-content li { margin: 4px 0; }
|
|
565
|
+
.analysis-content strong { color: var(--fg); }
|
|
566
|
+
.analysis-content code { background: var(--bg-card); padding: 2px 6px; border-radius: 4px; font-family: monospace; font-size: 13px; }
|
|
567
|
+
.analysis-content pre { background: var(--bg-card); padding: 12px; border-radius: 6px; overflow-x: auto; margin: 10px 0; }
|
|
568
|
+
.analysis-content pre code { background: none; padding: 0; }
|
|
569
|
+
.analysis-content blockquote { border-left: 3px solid var(--accent); padding-left: 12px; margin: 10px 0; color: var(--muted); }
|
|
570
|
+
.analysis-content table { width: 100%; border-collapse: collapse; margin: 10px 0; }
|
|
571
|
+
.analysis-content th, .analysis-content td { border: 1px solid var(--border); padding: 8px; text-align: left; }
|
|
572
|
+
.analysis-content th { background: var(--bg-card); }
|
|
526
573
|
</style>
|
|
527
574
|
</head>
|
|
528
575
|
<body>
|
|
@@ -533,6 +580,7 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
533
580
|
<button class="lang-btn" data-lang="en">EN</button>
|
|
534
581
|
<button class="lang-btn" data-lang="fr">FR</button>
|
|
535
582
|
</div>
|
|
583
|
+
<button class="btn btn-secondary" id="analyzeBtn" disabled>Analyze</button>
|
|
536
584
|
<button class="btn btn-success" id="savePipelineBtn" disabled>Save Pipeline</button>
|
|
537
585
|
<button class="btn btn-primary" id="activateBtn" disabled>Activate & Sync</button>
|
|
538
586
|
</header>
|
|
@@ -609,6 +657,17 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
609
657
|
</div>
|
|
610
658
|
</div>
|
|
611
659
|
|
|
660
|
+
<!-- Autocreate Section -->
|
|
661
|
+
<div class="autocreate-section" id="autocreateSection" style="margin-top: 24px; margin-bottom: 24px; padding: 20px; background: linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%); border-radius: 8px; color: white;">
|
|
662
|
+
<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px;">
|
|
663
|
+
<div>
|
|
664
|
+
<h3 id="autocreateTitle" style="margin: 0 0 4px 0; font-size: 16px; font-weight: 600;">Autocreate</h3>
|
|
665
|
+
<p id="autocreateDesc" style="margin: 0; font-size: 13px; opacity: 0.9;">Analyze your project and generate relevant columns automatically</p>
|
|
666
|
+
</div>
|
|
667
|
+
<a href="/settings/pipeline/autocreate" class="btn" id="autocreateBtn" style="background: white; color: var(--accent); font-weight: 600; text-decoration: none; padding: 8px 16px; border-radius: 4px; font-size: 13px;">Analyze Project</a>
|
|
668
|
+
</div>
|
|
669
|
+
</div>
|
|
670
|
+
|
|
612
671
|
<!-- Catalog -->
|
|
613
672
|
<div class="catalog">
|
|
614
673
|
<h2>
|
|
@@ -702,6 +761,22 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
702
761
|
</div>
|
|
703
762
|
</div>
|
|
704
763
|
|
|
764
|
+
<!-- Analysis Modal -->
|
|
765
|
+
<div class="modal-overlay" id="analysisModal">
|
|
766
|
+
<div class="modal analysis-modal">
|
|
767
|
+
<div class="modal-header" style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;">
|
|
768
|
+
<h3 id="analysisModalTitle" style="margin: 0;">Pipeline Analysis</h3>
|
|
769
|
+
<button class="btn btn-secondary" onclick="closeAnalysisModal()" style="padding: 4px 10px;">✕</button>
|
|
770
|
+
</div>
|
|
771
|
+
<div id="analysisContent" class="analysis-content">
|
|
772
|
+
<div class="analysis-loading">Analyzing...</div>
|
|
773
|
+
</div>
|
|
774
|
+
<div class="modal-actions">
|
|
775
|
+
<button class="btn btn-secondary" onclick="closeAnalysisModal()">Close</button>
|
|
776
|
+
</div>
|
|
777
|
+
</div>
|
|
778
|
+
</div>
|
|
779
|
+
|
|
705
780
|
<script>
|
|
706
781
|
// Translations
|
|
707
782
|
const translations = {
|
|
@@ -770,6 +845,14 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
770
845
|
columnApplied: 'Column applied!',
|
|
771
846
|
columnRemoved: 'Column removed!',
|
|
772
847
|
selectPipelineFirst: 'Please select a pipeline first',
|
|
848
|
+
analyze: 'Analyze',
|
|
849
|
+
analysisTitle: 'Pipeline Analysis',
|
|
850
|
+
analyzing: 'Analyzing pipeline configuration...',
|
|
851
|
+
analysisError: 'Analysis failed',
|
|
852
|
+
close: 'Close',
|
|
853
|
+
autocreateTitle: 'Autocreate',
|
|
854
|
+
autocreateDesc: 'Analyze your project and generate relevant columns automatically',
|
|
855
|
+
autocreateBtn: 'Analyze Project',
|
|
773
856
|
},
|
|
774
857
|
fr: {
|
|
775
858
|
backBtn: '← Tableau de bord',
|
|
@@ -836,6 +919,14 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
836
919
|
columnApplied: 'Colonne appliquée !',
|
|
837
920
|
columnRemoved: 'Colonne retirée !',
|
|
838
921
|
selectPipelineFirst: 'Veuillez d\\'abord sélectionner un pipeline',
|
|
922
|
+
analyze: 'Analyser',
|
|
923
|
+
analysisTitle: 'Analyse du Pipeline',
|
|
924
|
+
analyzing: 'Analyse de la configuration du pipeline...',
|
|
925
|
+
analysisError: 'Échec de l\\'analyse',
|
|
926
|
+
close: 'Fermer',
|
|
927
|
+
autocreateTitle: 'Autocreate',
|
|
928
|
+
autocreateDesc: 'Analysez votre projet et générez automatiquement des colonnes pertinentes',
|
|
929
|
+
autocreateBtn: 'Analyser le projet',
|
|
839
930
|
}
|
|
840
931
|
};
|
|
841
932
|
|
|
@@ -854,9 +945,14 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
854
945
|
setText($q('.title span'), t('titleSpan'));
|
|
855
946
|
const titleEl = $q('.title');
|
|
856
947
|
if (titleEl && titleEl.childNodes[2]) titleEl.childNodes[2].textContent = ' ' + t('title');
|
|
948
|
+
setText($('analyzeBtn'), t('analyze'));
|
|
857
949
|
setText($('savePipelineBtn'), t('savePipeline'));
|
|
858
950
|
setText($('activateBtn'), t('activateSync'));
|
|
859
951
|
|
|
952
|
+
// Analysis modal
|
|
953
|
+
setText($('analysisModalTitle'), t('analysisTitle'));
|
|
954
|
+
setText($q('#analysisModal .modal-actions button'), t('close'));
|
|
955
|
+
|
|
860
956
|
// Sidebar
|
|
861
957
|
setText($q('.sidebar h2'), t('pipelines'));
|
|
862
958
|
setText($('newPipelineBtn'), t('newPipeline'));
|
|
@@ -881,6 +977,11 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
881
977
|
setText($('segmentTitleFinish'), t('finish'));
|
|
882
978
|
setText($('segmentDescFinish'), t('finishDesc'));
|
|
883
979
|
|
|
980
|
+
// Autocreate section
|
|
981
|
+
setText($('autocreateTitle'), t('autocreateTitle'));
|
|
982
|
+
setText($('autocreateDesc'), t('autocreateDesc'));
|
|
983
|
+
setText($('autocreateBtn'), t('autocreateBtn'));
|
|
984
|
+
|
|
884
985
|
// Catalog
|
|
885
986
|
const catalogH2 = $q('.catalog h2');
|
|
886
987
|
if (catalogH2 && catalogH2.childNodes[0]) {
|
|
@@ -935,6 +1036,7 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
935
1036
|
const pipelineEditor = document.getElementById('pipelineEditor');
|
|
936
1037
|
const savePipelineBtn = document.getElementById('savePipelineBtn');
|
|
937
1038
|
const activateBtn = document.getElementById('activateBtn');
|
|
1039
|
+
const analyzeBtn = document.getElementById('analyzeBtn');
|
|
938
1040
|
const notification = document.getElementById('notification');
|
|
939
1041
|
|
|
940
1042
|
// Load initial data
|
|
@@ -1265,6 +1367,7 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
1265
1367
|
function updateButtons() {
|
|
1266
1368
|
savePipelineBtn.disabled = !hasChanges || !currentPipeline;
|
|
1267
1369
|
activateBtn.disabled = !currentPipeline || hasChanges;
|
|
1370
|
+
analyzeBtn.disabled = !currentPipeline;
|
|
1268
1371
|
|
|
1269
1372
|
// Validate pipeline
|
|
1270
1373
|
if (currentPipeline) {
|
|
@@ -1698,6 +1801,101 @@ export function generatePipelineConfiguratorPage(lang) {
|
|
|
1698
1801
|
});
|
|
1699
1802
|
}
|
|
1700
1803
|
|
|
1804
|
+
// =============== Pipeline Analysis ===============
|
|
1805
|
+
|
|
1806
|
+
// Simple markdown to HTML renderer
|
|
1807
|
+
function renderMarkdown(text) {
|
|
1808
|
+
if (!text) return '';
|
|
1809
|
+
|
|
1810
|
+
// Escape HTML first
|
|
1811
|
+
let html = text
|
|
1812
|
+
.replace(/&/g, '&')
|
|
1813
|
+
.replace(/</g, '<')
|
|
1814
|
+
.replace(/>/g, '>');
|
|
1815
|
+
|
|
1816
|
+
// Code blocks (must be before inline code)
|
|
1817
|
+
html = html.replace(/\`\`\`([\\s\\S]*?)\`\`\`/g, '<pre><code>$1</code></pre>');
|
|
1818
|
+
|
|
1819
|
+
// Headers
|
|
1820
|
+
html = html.replace(/^### (.*$)/gm, '<h3>$1</h3>');
|
|
1821
|
+
html = html.replace(/^## (.*$)/gm, '<h2>$1</h2>');
|
|
1822
|
+
html = html.replace(/^# (.*$)/gm, '<h1>$1</h1>');
|
|
1823
|
+
|
|
1824
|
+
// Bold and italic
|
|
1825
|
+
html = html.replace(/\\*\\*([^*]+)\\*\\*/g, '<strong>$1</strong>');
|
|
1826
|
+
html = html.replace(/\\*([^*]+)\\*/g, '<em>$1</em>');
|
|
1827
|
+
|
|
1828
|
+
// Inline code
|
|
1829
|
+
html = html.replace(/\`([^\`]+)\`/g, '<code>$1</code>');
|
|
1830
|
+
|
|
1831
|
+
// Lists
|
|
1832
|
+
html = html.replace(/^\\* (.*$)/gm, '<li>$1</li>');
|
|
1833
|
+
html = html.replace(/^- (.*$)/gm, '<li>$1</li>');
|
|
1834
|
+
html = html.replace(/^\\d+\\. (.*$)/gm, '<li>$1</li>');
|
|
1835
|
+
|
|
1836
|
+
// Wrap consecutive li elements in ul
|
|
1837
|
+
html = html.replace(/(<li>.*<\\/li>\\n?)+/g, (match) => '<ul>' + match + '</ul>');
|
|
1838
|
+
|
|
1839
|
+
// Paragraphs (double newlines)
|
|
1840
|
+
html = html.replace(/\\n\\n/g, '</p><p>');
|
|
1841
|
+
|
|
1842
|
+
// Single newlines to br (except after block elements)
|
|
1843
|
+
html = html.replace(/([^>])\\n([^<])/g, '$1<br>$2');
|
|
1844
|
+
|
|
1845
|
+
// Wrap in paragraph
|
|
1846
|
+
html = '<p>' + html + '</p>';
|
|
1847
|
+
|
|
1848
|
+
// Clean up empty paragraphs
|
|
1849
|
+
html = html.replace(/<p><\\/p>/g, '');
|
|
1850
|
+
html = html.replace(/<p>(<h[1-3]>)/g, '$1');
|
|
1851
|
+
html = html.replace(/(<\\/h[1-3]>)<\\/p>/g, '$1');
|
|
1852
|
+
html = html.replace(/<p>(<ul>)/g, '$1');
|
|
1853
|
+
html = html.replace(/(<\\/ul>)<\\/p>/g, '$1');
|
|
1854
|
+
html = html.replace(/<p>(<pre>)/g, '$1');
|
|
1855
|
+
html = html.replace(/(<\\/pre>)<\\/p>/g, '$1');
|
|
1856
|
+
|
|
1857
|
+
return html;
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
// Run pipeline analysis
|
|
1861
|
+
async function runAnalysis() {
|
|
1862
|
+
const modal = document.getElementById('analysisModal');
|
|
1863
|
+
const content = document.getElementById('analysisContent');
|
|
1864
|
+
|
|
1865
|
+
// Show modal with loading state
|
|
1866
|
+
modal.classList.add('show');
|
|
1867
|
+
content.innerHTML = '<div class="analysis-loading">' + t('analyzing') + '</div>';
|
|
1868
|
+
|
|
1869
|
+
try {
|
|
1870
|
+
const response = await fetch('/api/pipeline/analyze', {
|
|
1871
|
+
method: 'POST',
|
|
1872
|
+
headers: { 'Content-Type': 'application/json' },
|
|
1873
|
+
body: JSON.stringify({
|
|
1874
|
+
lang: currentLang,
|
|
1875
|
+
pipelineKey: currentPipelineKey
|
|
1876
|
+
})
|
|
1877
|
+
});
|
|
1878
|
+
|
|
1879
|
+
const data = await response.json();
|
|
1880
|
+
|
|
1881
|
+
if (data.success && data.data?.analysis) {
|
|
1882
|
+
content.innerHTML = renderMarkdown(data.data.analysis);
|
|
1883
|
+
} else {
|
|
1884
|
+
content.innerHTML = '<div class="analysis-error">' + t('analysisError') + ': ' + (data.error || 'Unknown error') + '</div>';
|
|
1885
|
+
}
|
|
1886
|
+
} catch (error) {
|
|
1887
|
+
content.innerHTML = '<div class="analysis-error">' + t('analysisError') + ': ' + error.message + '</div>';
|
|
1888
|
+
}
|
|
1889
|
+
}
|
|
1890
|
+
|
|
1891
|
+
// Close analysis modal
|
|
1892
|
+
function closeAnalysisModal() {
|
|
1893
|
+
document.getElementById('analysisModal').classList.remove('show');
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
// Analyze button click handler
|
|
1897
|
+
analyzeBtn.addEventListener('click', runAnalysis);
|
|
1898
|
+
|
|
1701
1899
|
// Initialize
|
|
1702
1900
|
init().then(() => {
|
|
1703
1901
|
updateUILanguage();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-configurator.js","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/pipeline-configurator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,OAAO;cACK,IAAI
|
|
1
|
+
{"version":3,"file":"pipeline-configurator.js","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/pipeline-configurator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,OAAO;cACK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA22DV,CAAC;AACT,CAAC"}
|
|
@@ -538,7 +538,7 @@ export function getScript() {
|
|
|
538
538
|
await fetch('/api/tickets/' + editingKey + '/move', {
|
|
539
539
|
method: 'POST',
|
|
540
540
|
headers: { 'Content-Type': 'application/json' },
|
|
541
|
-
body: JSON.stringify({ column: lastColumn.
|
|
541
|
+
body: JSON.stringify({ column: lastColumn.slug, force: true, lang: currentLang })
|
|
542
542
|
});
|
|
543
543
|
showNotification('info', t('notify.ticketArchived'), editingKey);
|
|
544
544
|
closeModal();
|
|
@@ -850,7 +850,7 @@ export function getScript() {
|
|
|
850
850
|
await fetch('/api/tickets/' + key + '/move', {
|
|
851
851
|
method: 'POST',
|
|
852
852
|
headers: { 'Content-Type': 'application/json' },
|
|
853
|
-
body: JSON.stringify({ column:
|
|
853
|
+
body: JSON.stringify({ column: targetColumnSlug, force: true, lang: currentLang })
|
|
854
854
|
});
|
|
855
855
|
showNotification('info', key + ' ' + t('notify.ticketMoved'), t('notify.moveTo') + ' "' + targetColumnName + '"');
|
|
856
856
|
loadTicketsFromAPI();
|
|
@@ -892,7 +892,7 @@ export function getScript() {
|
|
|
892
892
|
await fetch('/api/tickets/' + key + '/move', {
|
|
893
893
|
method: 'POST',
|
|
894
894
|
headers: { 'Content-Type': 'application/json' },
|
|
895
|
-
body: JSON.stringify({ column: lastColumn.
|
|
895
|
+
body: JSON.stringify({ column: lastColumn.slug, force: true, lang: currentLang })
|
|
896
896
|
});
|
|
897
897
|
showNotification('info', t('notify.ticketArchived'), key);
|
|
898
898
|
loadTicketsFromAPI();
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* This is a wrapper module that re-exports from the modular structure.
|
|
5
5
|
* See ./dashboard/ for the module organization.
|
|
6
6
|
*/
|
|
7
|
-
export { generateDashboard, generateColumnEditPage, generateTicketViewPage, generateColumnTerminalPage, generateColumnPromptPage, generatePipelineConfiguratorPage, generateStatsPage, } from './dashboard/pages/index.js';
|
|
7
|
+
export { generateDashboard, generateColumnEditPage, generateTicketViewPage, generateColumnTerminalPage, generateColumnPromptPage, generatePipelineConfiguratorPage, generateAutocreatePage, generateStatsPage, } from './dashboard/pages/index.js';
|
|
8
8
|
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/server/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/server/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|
package/dist/server/dashboard.js
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* This is a wrapper module that re-exports from the modular structure.
|
|
5
5
|
* See ./dashboard/ for the module organization.
|
|
6
6
|
*/
|
|
7
|
-
export { generateDashboard, generateColumnEditPage, generateTicketViewPage, generateColumnTerminalPage, generateColumnPromptPage, generatePipelineConfiguratorPage, generateStatsPage, } from './dashboard/pages/index.js';
|
|
7
|
+
export { generateDashboard, generateColumnEditPage, generateTicketViewPage, generateColumnTerminalPage, generateColumnPromptPage, generatePipelineConfiguratorPage, generateAutocreatePage, generateStatsPage, } from './dashboard/pages/index.js';
|
|
8
8
|
//# sourceMappingURL=dashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/server/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/server/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6CH;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6CH;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4L7D"}
|
package/dist/server/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { readFile } from 'node:fs/promises';
|
|
|
6
6
|
import { join, extname } from 'node:path';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
8
|
import { dirname } from 'node:path';
|
|
9
|
-
import { generateDashboard, generateColumnEditPage, generateTicketViewPage, generateColumnTerminalPage, generateColumnPromptPage, generatePipelineConfiguratorPage, generateStatsPage } from './dashboard.js';
|
|
9
|
+
import { generateDashboard, generateColumnEditPage, generateTicketViewPage, generateColumnTerminalPage, generateColumnPromptPage, generatePipelineConfiguratorPage, generateAutocreatePage, generateStatsPage } from './dashboard.js';
|
|
10
10
|
import { handleApiRequest } from './api.js';
|
|
11
11
|
import { handleWebSocketUpgrade, setupPingInterval, getClientCount } from './websocket.js';
|
|
12
12
|
import { startWatcher, stopWatcher } from './watcher.js';
|
|
@@ -73,6 +73,14 @@ export async function startServer(port) {
|
|
|
73
73
|
res.end(html);
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
+
// Handle autocreate page
|
|
77
|
+
if (url === '/settings/pipeline/autocreate') {
|
|
78
|
+
const config = getConfig();
|
|
79
|
+
const html = generateAutocreatePage(config.lang);
|
|
80
|
+
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
81
|
+
res.end(html);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
76
84
|
// Handle stats page
|
|
77
85
|
if (url === '/stats') {
|
|
78
86
|
const html = generateStatsPage();
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAmC,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autocreate service
|
|
3
|
+
* Analyzes project context and generates column proposals using Claude
|
|
4
|
+
*/
|
|
5
|
+
import type { ProjectContext, AutocreateResult, AutocreateProposedColumn } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Gather project context for analysis
|
|
8
|
+
*/
|
|
9
|
+
export declare function gatherProjectContext(): ProjectContext;
|
|
10
|
+
/**
|
|
11
|
+
* Get all existing column slugs from the catalog
|
|
12
|
+
*/
|
|
13
|
+
export declare function getExistingSlugs(): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Build the autocreate prompt for Claude
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildAutocreatePrompt(context: ProjectContext, existingSlugs: string[]): string;
|
|
18
|
+
/**
|
|
19
|
+
* Parse Claude's response and extract the JSON result
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseAutocreateResponse(output: string): AutocreateResult;
|
|
22
|
+
/**
|
|
23
|
+
* Compute overlap warnings for proposed columns against existing catalog
|
|
24
|
+
*/
|
|
25
|
+
export declare function computeOverlaps(proposed: AutocreateProposedColumn[], existingSlugs: string[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Execute the autocreate analysis using Claude CLI
|
|
28
|
+
*/
|
|
29
|
+
export declare function executeAutocreate(): AutocreateResult;
|
|
30
|
+
/**
|
|
31
|
+
* Check if Claude CLI is available
|
|
32
|
+
*/
|
|
33
|
+
export declare function isClaudeAvailable(): boolean;
|
|
34
|
+
//# sourceMappingURL=autocreate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocreate.d.ts","sourceRoot":"","sources":["../../src/services/autocreate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAsHrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAW3C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,MAAM,EAAE,GACtB,MAAM,CA+NR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAkDxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,wBAAwB,EAAE,EACpC,aAAa,EAAE,MAAM,EAAE,GACtB,IAAI,CAyBN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,gBAAgB,CAsCpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAU3C"}
|