@planu/cli 0.72.0 → 0.73.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/config/license-plans.json +9 -2
- package/dist/config/tool-groups.json +5 -1
- package/dist/engine/actuals/git-analyzer.js +1 -1
- package/dist/engine/actuals/git-analyzer.js.map +1 -1
- package/dist/engine/agent-prompt-generator.d.ts +12 -0
- package/dist/engine/agent-prompt-generator.d.ts.map +1 -0
- package/dist/engine/agent-prompt-generator.js +171 -0
- package/dist/engine/agent-prompt-generator.js.map +1 -0
- package/dist/engine/ai-tool-detector/index.d.ts +6 -0
- package/dist/engine/ai-tool-detector/index.d.ts.map +1 -0
- package/dist/engine/ai-tool-detector/index.js +95 -0
- package/dist/engine/ai-tool-detector/index.js.map +1 -0
- package/dist/engine/ci-generator/planu-steps.d.ts.map +1 -1
- package/dist/engine/ci-generator/planu-steps.js +10 -11
- package/dist/engine/ci-generator/planu-steps.js.map +1 -1
- package/dist/engine/convention-scanner/codebase-scanner.d.ts +7 -0
- package/dist/engine/convention-scanner/codebase-scanner.d.ts.map +1 -0
- package/dist/engine/convention-scanner/codebase-scanner.js +258 -0
- package/dist/engine/convention-scanner/codebase-scanner.js.map +1 -0
- package/dist/engine/convention-scanner/convention-parser.d.ts +7 -0
- package/dist/engine/convention-scanner/convention-parser.d.ts.map +1 -0
- package/dist/engine/convention-scanner/convention-parser.js +195 -0
- package/dist/engine/convention-scanner/convention-parser.js.map +1 -0
- package/dist/engine/convention-scanner/index.d.ts +3 -0
- package/dist/engine/convention-scanner/index.d.ts.map +1 -0
- package/dist/engine/convention-scanner/index.js +5 -0
- package/dist/engine/convention-scanner/index.js.map +1 -0
- package/dist/engine/convention-sync.d.ts +9 -0
- package/dist/engine/convention-sync.d.ts.map +1 -0
- package/dist/engine/convention-sync.js +156 -0
- package/dist/engine/convention-sync.js.map +1 -0
- package/dist/engine/doc-generator/portal/portal-regenerator.d.ts +2 -1
- package/dist/engine/doc-generator/portal/portal-regenerator.d.ts.map +1 -1
- package/dist/engine/doc-generator/portal/portal-regenerator.js +23 -15
- package/dist/engine/doc-generator/portal/portal-regenerator.js.map +1 -1
- package/dist/engine/feedback/triage.d.ts +16 -0
- package/dist/engine/feedback/triage.d.ts.map +1 -0
- package/dist/engine/feedback/triage.js +165 -0
- package/dist/engine/feedback/triage.js.map +1 -0
- package/dist/engine/hooks-reconciler.d.ts +7 -0
- package/dist/engine/hooks-reconciler.d.ts.map +1 -0
- package/dist/engine/hooks-reconciler.js +214 -0
- package/dist/engine/hooks-reconciler.js.map +1 -0
- package/dist/engine/platform-registry.d.ts +17 -0
- package/dist/engine/platform-registry.d.ts.map +1 -0
- package/dist/engine/platform-registry.js +78 -0
- package/dist/engine/platform-registry.js.map +1 -0
- package/dist/engine/project-health-checker.d.ts +4 -2
- package/dist/engine/project-health-checker.d.ts.map +1 -1
- package/dist/engine/project-health-checker.js +78 -5
- package/dist/engine/project-health-checker.js.map +1 -1
- package/dist/engine/rules-generator/index.d.ts +14 -0
- package/dist/engine/rules-generator/index.d.ts.map +1 -0
- package/dist/engine/rules-generator/index.js +313 -0
- package/dist/engine/rules-generator/index.js.map +1 -0
- package/dist/engine/rules-reconciler.d.ts +13 -0
- package/dist/engine/rules-reconciler.d.ts.map +1 -0
- package/dist/engine/rules-reconciler.js +193 -0
- package/dist/engine/rules-reconciler.js.map +1 -0
- package/dist/engine/skill-generator/detect.d.ts +1 -0
- package/dist/engine/skill-generator/detect.d.ts.map +1 -1
- package/dist/engine/skill-generator/detect.js +13 -5
- package/dist/engine/skill-generator/detect.js.map +1 -1
- package/dist/engine/skills/skills-fetcher.d.ts +4 -0
- package/dist/engine/skills/skills-fetcher.d.ts.map +1 -0
- package/dist/engine/skills/skills-fetcher.js +102 -0
- package/dist/engine/skills/skills-fetcher.js.map +1 -0
- package/dist/engine/skills-reconciler.d.ts +15 -0
- package/dist/engine/skills-reconciler.d.ts.map +1 -0
- package/dist/engine/skills-reconciler.js +98 -0
- package/dist/engine/skills-reconciler.js.map +1 -0
- package/dist/engine/spec-template-cleaner.d.ts +12 -0
- package/dist/engine/spec-template-cleaner.d.ts.map +1 -0
- package/dist/engine/spec-template-cleaner.js +119 -0
- package/dist/engine/spec-template-cleaner.js.map +1 -0
- package/dist/engine/validator/analyzer.d.ts +4 -2
- package/dist/engine/validator/analyzer.d.ts.map +1 -1
- package/dist/engine/validator/analyzer.js +5 -2
- package/dist/engine/validator/analyzer.js.map +1 -1
- package/dist/engine/validator/deep-code-checker.d.ts +4 -2
- package/dist/engine/validator/deep-code-checker.d.ts.map +1 -1
- package/dist/engine/validator/deep-code-checker.js +44 -1
- package/dist/engine/validator/deep-code-checker.js.map +1 -1
- package/dist/engine/validator/extractors.d.ts +8 -1
- package/dist/engine/validator/extractors.d.ts.map +1 -1
- package/dist/engine/validator/extractors.js +33 -0
- package/dist/engine/validator/extractors.js.map +1 -1
- package/dist/engine/validator.d.ts.map +1 -1
- package/dist/engine/validator.js +13 -2
- package/dist/engine/validator.js.map +1 -1
- package/dist/engine/workers/schema.d.ts +58 -0
- package/dist/engine/workers/schema.d.ts.map +1 -0
- package/dist/engine/workers/schema.js +41 -0
- package/dist/engine/workers/schema.js.map +1 -0
- package/dist/engine/workers/worker-engine.js +1 -1
- package/dist/engine/workers/worker-engine.js.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/storage/convention-baseline.d.ts +20 -0
- package/dist/storage/convention-baseline.d.ts.map +1 -0
- package/dist/storage/convention-baseline.js +57 -0
- package/dist/storage/convention-baseline.js.map +1 -0
- package/dist/storage/feedback-remote.d.ts +8 -0
- package/dist/storage/feedback-remote.d.ts.map +1 -0
- package/dist/storage/feedback-remote.js +27 -0
- package/dist/storage/feedback-remote.js.map +1 -0
- package/dist/storage/feedback-store.d.ts +27 -0
- package/dist/storage/feedback-store.d.ts.map +1 -0
- package/dist/storage/feedback-store.js +272 -0
- package/dist/storage/feedback-store.js.map +1 -0
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/tools/convention-sync.d.ts +8 -0
- package/dist/tools/convention-sync.d.ts.map +1 -0
- package/dist/tools/convention-sync.js +77 -0
- package/dist/tools/convention-sync.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/convention-adapter.d.ts +9 -0
- package/dist/tools/create-spec-hu/ac-adapters/convention-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/convention-adapter.js +68 -0
- package/dist/tools/create-spec-hu/ac-adapters/convention-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/custom-template-adapter.d.ts +14 -0
- package/dist/tools/create-spec-hu/ac-adapters/custom-template-adapter.d.ts.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/custom-template-adapter.js +60 -0
- package/dist/tools/create-spec-hu/ac-adapters/custom-template-adapter.js.map +1 -0
- package/dist/tools/create-spec-hu/ac-adapters/index.d.ts +4 -0
- package/dist/tools/create-spec-hu/ac-adapters/index.d.ts.map +1 -1
- package/dist/tools/create-spec-hu/ac-adapters/index.js +9 -1
- package/dist/tools/create-spec-hu/ac-adapters/index.js.map +1 -1
- package/dist/tools/create-spec.d.ts.map +1 -1
- package/dist/tools/create-spec.js +3 -2
- package/dist/tools/create-spec.js.map +1 -1
- package/dist/tools/delete-decision.d.ts.map +1 -1
- package/dist/tools/delete-decision.js +2 -0
- package/dist/tools/delete-decision.js.map +1 -1
- package/dist/tools/delete-project.d.ts.map +1 -1
- package/dist/tools/delete-project.js +11 -14
- package/dist/tools/delete-project.js.map +1 -1
- package/dist/tools/delete-spec.d.ts.map +1 -1
- package/dist/tools/delete-spec.js +11 -9
- package/dist/tools/delete-spec.js.map +1 -1
- package/dist/tools/estimate.d.ts.map +1 -1
- package/dist/tools/estimate.js +6 -5
- package/dist/tools/estimate.js.map +1 -1
- package/dist/tools/export-session.d.ts.map +1 -1
- package/dist/tools/export-session.js +7 -9
- package/dist/tools/export-session.js.map +1 -1
- package/dist/tools/feedback-handler.d.ts +5 -0
- package/dist/tools/feedback-handler.d.ts.map +1 -0
- package/dist/tools/feedback-handler.js +106 -0
- package/dist/tools/feedback-handler.js.map +1 -0
- package/dist/tools/generate-teammate-prompt.d.ts +8 -0
- package/dist/tools/generate-teammate-prompt.d.ts.map +1 -1
- package/dist/tools/generate-teammate-prompt.js +33 -0
- package/dist/tools/generate-teammate-prompt.js.map +1 -1
- package/dist/tools/init-project/handler.d.ts.map +1 -1
- package/dist/tools/init-project/handler.js +42 -7
- package/dist/tools/init-project/handler.js.map +1 -1
- package/dist/tools/init-project/helpers.d.ts.map +1 -1
- package/dist/tools/init-project/helpers.js +1 -2
- package/dist/tools/init-project/helpers.js.map +1 -1
- package/dist/tools/init-project/result-builder.d.ts.map +1 -1
- package/dist/tools/init-project/result-builder.js +12 -1
- package/dist/tools/init-project/result-builder.js.map +1 -1
- package/dist/tools/log-decision.d.ts.map +1 -1
- package/dist/tools/log-decision.js +15 -4
- package/dist/tools/log-decision.js.map +1 -1
- package/dist/tools/manage-trash.d.ts.map +1 -1
- package/dist/tools/manage-trash.js +13 -27
- package/dist/tools/manage-trash.js.map +1 -1
- package/dist/tools/reconcile-hooks.d.ts +7 -0
- package/dist/tools/reconcile-hooks.d.ts.map +1 -0
- package/dist/tools/reconcile-hooks.js +78 -0
- package/dist/tools/reconcile-hooks.js.map +1 -0
- package/dist/tools/reconcile-rules.d.ts +7 -0
- package/dist/tools/reconcile-rules.d.ts.map +1 -0
- package/dist/tools/reconcile-rules.js +86 -0
- package/dist/tools/reconcile-rules.js.map +1 -0
- package/dist/tools/reconcile-skills.d.ts +8 -0
- package/dist/tools/reconcile-skills.d.ts.map +1 -0
- package/dist/tools/reconcile-skills.js +70 -0
- package/dist/tools/reconcile-skills.js.map +1 -0
- package/dist/tools/register-feedback-tools.d.ts +3 -0
- package/dist/tools/register-feedback-tools.d.ts.map +1 -0
- package/dist/tools/register-feedback-tools.js +65 -0
- package/dist/tools/register-feedback-tools.js.map +1 -0
- package/dist/tools/register-spec-tools/core-spec-tools.d.ts.map +1 -1
- package/dist/tools/register-spec-tools/core-spec-tools.js +10 -4
- package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -1
- package/dist/tools/register-team-tools.d.ts.map +1 -1
- package/dist/tools/register-team-tools.js +35 -8
- package/dist/tools/register-team-tools.js.map +1 -1
- package/dist/tools/safe-handler.d.ts.map +1 -1
- package/dist/tools/safe-handler.js +20 -2
- package/dist/tools/safe-handler.js.map +1 -1
- package/dist/tools/schemas/index.d.ts +1 -0
- package/dist/tools/schemas/index.d.ts.map +1 -1
- package/dist/tools/schemas/index.js +1 -0
- package/dist/tools/schemas/index.js.map +1 -1
- package/dist/tools/schemas/reconcile-skills-schemas.d.ts +7 -0
- package/dist/tools/schemas/reconcile-skills-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/reconcile-skills-schemas.js +18 -0
- package/dist/tools/schemas/reconcile-skills-schemas.js.map +1 -0
- package/dist/tools/schemas/workers-schema.d.ts +1 -56
- package/dist/tools/schemas/workers-schema.d.ts.map +1 -1
- package/dist/tools/schemas/workers-schema.js +6 -42
- package/dist/tools/schemas/workers-schema.js.map +1 -1
- package/dist/tools/skill-registry/search.d.ts.map +1 -1
- package/dist/tools/skill-registry/search.js +29 -3
- package/dist/tools/skill-registry/search.js.map +1 -1
- package/dist/tools/suggest-tooling/skills-fetcher.d.ts +1 -3
- package/dist/tools/suggest-tooling/skills-fetcher.d.ts.map +1 -1
- package/dist/tools/suggest-tooling/skills-fetcher.js +3 -101
- package/dist/tools/suggest-tooling/skills-fetcher.js.map +1 -1
- package/dist/tools/token-recording.d.ts +16 -0
- package/dist/tools/token-recording.d.ts.map +1 -0
- package/dist/tools/token-recording.js +47 -0
- package/dist/tools/token-recording.js.map +1 -0
- package/dist/tools/update-status-convention-gate.d.ts +12 -0
- package/dist/tools/update-status-convention-gate.d.ts.map +1 -0
- package/dist/tools/update-status-convention-gate.js +159 -0
- package/dist/tools/update-status-convention-gate.js.map +1 -0
- package/dist/tools/update-status-reconcile.d.ts +7 -0
- package/dist/tools/update-status-reconcile.d.ts.map +1 -0
- package/dist/tools/update-status-reconcile.js +47 -0
- package/dist/tools/update-status-reconcile.js.map +1 -0
- package/dist/tools/update-status.d.ts.map +1 -1
- package/dist/tools/update-status.js +113 -67
- package/dist/tools/update-status.js.map +1 -1
- package/dist/tools/validate.d.ts.map +1 -1
- package/dist/tools/validate.js +92 -2
- package/dist/tools/validate.js.map +1 -1
- package/dist/types/ai-tool-rules.d.ts +42 -0
- package/dist/types/ai-tool-rules.d.ts.map +1 -0
- package/dist/types/ai-tool-rules.js +3 -0
- package/dist/types/ai-tool-rules.js.map +1 -0
- package/dist/types/conventions.d.ts +155 -0
- package/dist/types/conventions.d.ts.map +1 -0
- package/dist/types/conventions.js +3 -0
- package/dist/types/conventions.js.map +1 -0
- package/dist/types/feedback.d.ts +76 -0
- package/dist/types/feedback.d.ts.map +1 -0
- package/dist/types/feedback.js +3 -0
- package/dist/types/feedback.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/project/planu-config.d.ts +4 -0
- package/dist/types/project/planu-config.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/license-plans.json +9 -2
- package/src/config/tool-groups.json +5 -1
|
@@ -56,6 +56,39 @@ export async function extractCriteria(spec) {
|
|
|
56
56
|
}
|
|
57
57
|
return [...new Set(criteria)]; // Deduplicate
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse verify blocks from HTML comments following acceptance criteria checkboxes.
|
|
61
|
+
* Format: `- [ ] criterion text` followed by `<!-- verify: {...} -->`
|
|
62
|
+
* Returns a Map of criterion text -> VerifyBlock.
|
|
63
|
+
* Invalid JSON blocks are silently skipped (forgiving parser).
|
|
64
|
+
*/
|
|
65
|
+
export function extractVerifyBlocks(content) {
|
|
66
|
+
const blocks = new Map();
|
|
67
|
+
const lines = content.split('\n');
|
|
68
|
+
let lastCriterion = '';
|
|
69
|
+
for (const line of lines) {
|
|
70
|
+
const trimmed = line.trim();
|
|
71
|
+
// Detect criterion line: - [ ] text or - [x] text (case-insensitive x)
|
|
72
|
+
const criterionMatch = /^-\s*\[[ xX]\]\s*(.+)/i.exec(trimmed);
|
|
73
|
+
if (criterionMatch) {
|
|
74
|
+
lastCriterion = (criterionMatch[1] ?? '').trim();
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
// Detect verify block: <!-- verify: {...} -->
|
|
78
|
+
// The JSON object may span a single line within the comment
|
|
79
|
+
const verifyMatch = /<!--\s*verify:\s*(\{[^}]+\})\s*-->/.exec(trimmed);
|
|
80
|
+
if (verifyMatch && lastCriterion) {
|
|
81
|
+
try {
|
|
82
|
+
const block = JSON.parse(verifyMatch[1] ?? '{}');
|
|
83
|
+
blocks.set(lastCriterion, block);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// Invalid JSON — skip silently
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return blocks;
|
|
91
|
+
}
|
|
59
92
|
/**
|
|
60
93
|
* Extract the text content under a markdown heading that matches any of the given keywords.
|
|
61
94
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractors.js","sourceRoot":"","sources":["../../../src/engine/validator/extractors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extractors.js","sourceRoot":"","sources":["../../../src/engine/validator/extractors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/engine/validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/engine/validator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAY3B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqD3F;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAM,GAAG,OAAgB,EAChC,SAAS,SAAK,GACb,OAAO,CAAC,WAAW,CAAC,CA0CtB"}
|
package/dist/engine/validator.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Planu — Spec Validator Engine
|
|
2
2
|
// Public orchestrator: thin entry point that delegates to internal sub-modules.
|
|
3
3
|
// All imports from '../engine/validator.js' continue to work unchanged.
|
|
4
|
-
import {
|
|
4
|
+
import { readFile } from 'node:fs/promises';
|
|
5
|
+
import { extractCriteria, extractVerifyBlocks } from './validator/extractors.js';
|
|
5
6
|
import { scanCodeForSpec, checkCriterion, classifyDriftSeverity, quickQualityCheck, } from './validator/analyzer.js';
|
|
6
7
|
// Re-export the full public API so external callers never need to know
|
|
7
8
|
// about the sub-module layout.
|
|
@@ -15,12 +16,22 @@ export { generateChecklist } from './validator/checklist.js';
|
|
|
15
16
|
export async function validateSpec(spec, projectPath) {
|
|
16
17
|
const criteria = await extractCriteria(spec);
|
|
17
18
|
const codeState = await scanCodeForSpec(spec, projectPath);
|
|
19
|
+
// Extract verify blocks from spec file (forgiving — empty map if file unreadable)
|
|
20
|
+
let verifyBlockMap = new Map();
|
|
21
|
+
try {
|
|
22
|
+
const specContent = await readFile(spec.specPath, 'utf-8');
|
|
23
|
+
verifyBlockMap = extractVerifyBlocks(specContent);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// spec file not available — proceed without verify blocks
|
|
27
|
+
}
|
|
18
28
|
const matches = [];
|
|
19
29
|
const missing = [];
|
|
20
30
|
const extra = [];
|
|
21
31
|
const qualityIssues = [];
|
|
22
32
|
for (const criterion of criteria) {
|
|
23
|
-
const
|
|
33
|
+
const verifyBlock = verifyBlockMap.get(criterion);
|
|
34
|
+
const found = await checkCriterion(criterion, projectPath, codeState, verifyBlock);
|
|
24
35
|
if (found) {
|
|
25
36
|
matches.push(criterion);
|
|
26
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/engine/validator.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,gFAAgF;AAChF,wEAAwE;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/engine/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const WorkerTriggerSchema: z.ZodObject<{
|
|
3
|
+
type: z.ZodEnum<{
|
|
4
|
+
event: "event";
|
|
5
|
+
schedule: "schedule";
|
|
6
|
+
"file-change": "file-change";
|
|
7
|
+
}>;
|
|
8
|
+
patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
|
+
events: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
10
|
+
intervalMs: z.ZodOptional<z.ZodNumber>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const WorkerDefinitionSchema: z.ZodObject<{
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
description: z.ZodString;
|
|
15
|
+
trigger: z.ZodObject<{
|
|
16
|
+
type: z.ZodEnum<{
|
|
17
|
+
event: "event";
|
|
18
|
+
schedule: "schedule";
|
|
19
|
+
"file-change": "file-change";
|
|
20
|
+
}>;
|
|
21
|
+
patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
22
|
+
events: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
intervalMs: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
handler: z.ZodString;
|
|
26
|
+
priority: z.ZodNumber;
|
|
27
|
+
cooldownMs: z.ZodNumber;
|
|
28
|
+
enabled: z.ZodBoolean;
|
|
29
|
+
tier: z.ZodEnum<{
|
|
30
|
+
free: "free";
|
|
31
|
+
pro: "pro";
|
|
32
|
+
}>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export declare const WorkerRegistrySchema: z.ZodObject<{
|
|
35
|
+
workers: z.ZodArray<z.ZodObject<{
|
|
36
|
+
name: z.ZodString;
|
|
37
|
+
description: z.ZodString;
|
|
38
|
+
trigger: z.ZodObject<{
|
|
39
|
+
type: z.ZodEnum<{
|
|
40
|
+
event: "event";
|
|
41
|
+
schedule: "schedule";
|
|
42
|
+
"file-change": "file-change";
|
|
43
|
+
}>;
|
|
44
|
+
patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
45
|
+
events: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
46
|
+
intervalMs: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
handler: z.ZodString;
|
|
49
|
+
priority: z.ZodNumber;
|
|
50
|
+
cooldownMs: z.ZodNumber;
|
|
51
|
+
enabled: z.ZodBoolean;
|
|
52
|
+
tier: z.ZodEnum<{
|
|
53
|
+
free: "free";
|
|
54
|
+
pro: "pro";
|
|
55
|
+
}>;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/engine/workers/schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;iBAoB9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAYjC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;iBAE/B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// engine/workers/schema.ts — Registry validation schemas for worker definitions (SPEC-078)
|
|
2
|
+
// Lives in engine/ so worker-engine.ts can import without violating architecture.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const WorkerTriggerSchema = z.object({
|
|
5
|
+
type: z
|
|
6
|
+
.enum(['file-change', 'event', 'schedule'])
|
|
7
|
+
.describe('Trigger type: file-change | event | schedule'),
|
|
8
|
+
patterns: z
|
|
9
|
+
.array(z.string().max(4096).describe('Glob pattern like **/*.ts'))
|
|
10
|
+
.max(100)
|
|
11
|
+
.optional()
|
|
12
|
+
.describe('Glob patterns for file-change triggers'),
|
|
13
|
+
events: z
|
|
14
|
+
.array(z.string().max(500).describe('Event name like post-create-spec'))
|
|
15
|
+
.max(100)
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Event names for event triggers'),
|
|
18
|
+
intervalMs: z
|
|
19
|
+
.number()
|
|
20
|
+
.int()
|
|
21
|
+
.positive()
|
|
22
|
+
.optional()
|
|
23
|
+
.describe('Interval in ms for schedule triggers'),
|
|
24
|
+
});
|
|
25
|
+
export const WorkerDefinitionSchema = z.object({
|
|
26
|
+
name: z.string().min(1).max(500).describe('Unique worker name'),
|
|
27
|
+
description: z
|
|
28
|
+
.string()
|
|
29
|
+
.max(10_000)
|
|
30
|
+
.describe('Human-readable description of what the worker does'),
|
|
31
|
+
trigger: WorkerTriggerSchema.describe('When this worker should be triggered'),
|
|
32
|
+
handler: z.string().max(4096).describe('Path to handler module'),
|
|
33
|
+
priority: z.number().int().min(1).max(10).describe('Priority 1-10, higher = more important'),
|
|
34
|
+
cooldownMs: z.number().int().min(0).describe('Minimum milliseconds between executions'),
|
|
35
|
+
enabled: z.boolean().describe('Whether the worker is active'),
|
|
36
|
+
tier: z.enum(['free', 'pro']).describe('License tier: free | pro'),
|
|
37
|
+
});
|
|
38
|
+
export const WorkerRegistrySchema = z.object({
|
|
39
|
+
workers: z.array(WorkerDefinitionSchema).max(1000).describe('List of worker definitions'),
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/engine/workers/schema.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,kFAAkF;AAElF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;SAC1C,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;SACjE,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;IACrD,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;SACvE,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC/D,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,MAAM,CAAC;SACX,QAAQ,CAAC,oDAAoD,CAAC;IACjE,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC7E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC5F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACvF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC7D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACnE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CAC1F,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// engine/workers/worker-engine.ts — Orchestrator for background workers (SPEC-078 AC-02, AC-13)
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { WorkerRegistrySchema } from '
|
|
4
|
+
import { WorkerRegistrySchema } from './schema.js';
|
|
5
5
|
import { runTestGaps } from './handlers/test-gaps.js';
|
|
6
6
|
import { runSecurityAudit } from './handlers/security-audit.js';
|
|
7
7
|
import { runOptimization } from './handlers/optimization.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-engine.js","sourceRoot":"","sources":["../../../src/engine/workers/worker-engine.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"worker-engine.js","sourceRoot":"","sources":["../../../src/engine/workers/worker-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -43,6 +43,7 @@ import { registerReadinessTools } from './tools/register-readiness-tools.js';
|
|
|
43
43
|
import { registerMemoryTools } from './tools/register-memory-tools.js';
|
|
44
44
|
import { registerStackTools } from './tools/register-stack-tools.js';
|
|
45
45
|
import { registerCheckConfigHealthTool } from './tools/check-config-health.js';
|
|
46
|
+
import { registerConfigHealthTool } from './tools/convention-sync.js';
|
|
46
47
|
import { registerAgentTools } from './tools/register-agent-tools.js';
|
|
47
48
|
import { registerWorkflowTools } from './tools/register-workflow-tools.js';
|
|
48
49
|
import { registerLicenseTools } from './tools/register-license-tools.js';
|
|
@@ -82,6 +83,10 @@ import { registerGenerateDashboardTools } from './tools/generate-dashboard.js';
|
|
|
82
83
|
import { registerGenerateProposalTool } from './tools/generate-proposal.js';
|
|
83
84
|
import { registerExportPdfTool } from './tools/export-pdf.js';
|
|
84
85
|
import { registerEcosystemTools } from './tools/register-ecosystem-tools.js';
|
|
86
|
+
import { registerFeedbackTools } from './tools/register-feedback-tools.js';
|
|
87
|
+
import { registerReconcileRulesTool } from './tools/reconcile-rules.js';
|
|
88
|
+
import { registerReconcileSkillsTool } from './tools/reconcile-skills.js';
|
|
89
|
+
import { registerReconcileHooksTool } from './tools/reconcile-hooks.js';
|
|
85
90
|
import { PLANU_VERSION } from './config/version.js';
|
|
86
91
|
import { handleActivateLicense } from './tools/activate-license.js';
|
|
87
92
|
import { GroupManager } from './engine/tool-groups/group-manager.js';
|
|
@@ -181,6 +186,7 @@ function createMcpServer() {
|
|
|
181
186
|
registerMemoryTools(s);
|
|
182
187
|
registerStackTools(s);
|
|
183
188
|
registerCheckConfigHealthTool(s);
|
|
189
|
+
registerConfigHealthTool(s);
|
|
184
190
|
registerAgentTools(s);
|
|
185
191
|
registerWorkflowTools(s);
|
|
186
192
|
registerLicenseTools(s);
|
|
@@ -220,6 +226,10 @@ function createMcpServer() {
|
|
|
220
226
|
registerGenerateProposalTool(s);
|
|
221
227
|
registerExportPdfTool(s);
|
|
222
228
|
registerEcosystemTools(s);
|
|
229
|
+
registerFeedbackTools(s);
|
|
230
|
+
registerReconcileRulesTool(s);
|
|
231
|
+
registerReconcileSkillsTool(s);
|
|
232
|
+
registerReconcileHooksTool(s);
|
|
223
233
|
registerPrompts(s);
|
|
224
234
|
return s;
|
|
225
235
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ConventionBaseline, ConventionScanResult, BaselineComparison } from '../types/index.js';
|
|
2
|
+
declare function baselineFile(projectId: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* Persist a convention baseline for a project.
|
|
5
|
+
* Overwrites any previously stored baseline.
|
|
6
|
+
*/
|
|
7
|
+
export declare function saveBaseline(projectId: string, baseline: ConventionBaseline): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Retrieve the stored baseline for a project.
|
|
10
|
+
* Returns null when no baseline has been established yet.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getBaseline(projectId: string): Promise<ConventionBaseline | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Compare a current scan result against the stored baseline.
|
|
15
|
+
* Returns new violations (regressions) and fixed violations (improvements).
|
|
16
|
+
* If no baseline exists, all current violations are treated as new.
|
|
17
|
+
*/
|
|
18
|
+
export declare function compareWithBaseline(projectId: string, current: ConventionScanResult): Promise<BaselineComparison>;
|
|
19
|
+
export { baselineFile };
|
|
20
|
+
//# sourceMappingURL=convention-baseline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convention-baseline.d.ts","sourceRoot":"","sources":["../../src/storage/convention-baseline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAEpB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAI3B,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjG;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAEvF;AAUD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { readJson, writeJson, projectDataDir } from './base-store.js';
|
|
2
|
+
import { withFileLock } from './file-mutex.js';
|
|
3
|
+
function baselineFile(projectId) {
|
|
4
|
+
return `${projectDataDir(projectId)}/convention-baseline.json`;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Persist a convention baseline for a project.
|
|
8
|
+
* Overwrites any previously stored baseline.
|
|
9
|
+
*/
|
|
10
|
+
export async function saveBaseline(projectId, baseline) {
|
|
11
|
+
await withFileLock(baselineFile(projectId), async () => {
|
|
12
|
+
await writeJson(baselineFile(projectId), baseline);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Retrieve the stored baseline for a project.
|
|
17
|
+
* Returns null when no baseline has been established yet.
|
|
18
|
+
*/
|
|
19
|
+
export async function getBaseline(projectId) {
|
|
20
|
+
return readJson(baselineFile(projectId), null);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build a stable key for a violation used to detect equivalence between scans.
|
|
24
|
+
* Two violations with the same key are considered the same issue.
|
|
25
|
+
*/
|
|
26
|
+
function violationKey(v) {
|
|
27
|
+
return `${v.ruleId}::${v.file}::${v.line ?? 0}`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Compare a current scan result against the stored baseline.
|
|
31
|
+
* Returns new violations (regressions) and fixed violations (improvements).
|
|
32
|
+
* If no baseline exists, all current violations are treated as new.
|
|
33
|
+
*/
|
|
34
|
+
export async function compareWithBaseline(projectId, current) {
|
|
35
|
+
const baseline = await getBaseline(projectId);
|
|
36
|
+
if (!baseline) {
|
|
37
|
+
return {
|
|
38
|
+
newViolations: current.violations,
|
|
39
|
+
fixedViolations: [],
|
|
40
|
+
totalDelta: current.violations.length,
|
|
41
|
+
regressionDetected: current.violations.length > 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const baselineKeys = new Set(baseline.snapshot.violations.map(violationKey));
|
|
45
|
+
const currentKeys = new Set(current.violations.map(violationKey));
|
|
46
|
+
const newViolations = current.violations.filter((v) => !baselineKeys.has(violationKey(v)));
|
|
47
|
+
const fixedViolations = baseline.snapshot.violations.filter((v) => !currentKeys.has(violationKey(v)));
|
|
48
|
+
const totalDelta = newViolations.length - fixedViolations.length;
|
|
49
|
+
return {
|
|
50
|
+
newViolations,
|
|
51
|
+
fixedViolations,
|
|
52
|
+
totalDelta,
|
|
53
|
+
regressionDetected: totalDelta > 0,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export { baselineFile };
|
|
57
|
+
//# sourceMappingURL=convention-baseline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convention-baseline.js","sourceRoot":"","sources":["../../src/storage/convention-baseline.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,SAAS,YAAY,CAAC,SAAiB;IACrC,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,2BAA2B,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,QAA4B;IAChF,MAAM,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,OAAO,QAAQ,CAA4B,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,CAAsB;IAC1C,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,OAA6B;IAE7B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,aAAa,EAAE,OAAO,CAAC,UAAU;YACjC,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;YACrC,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACzC,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAEjE,OAAO;QACL,aAAa;QACb,eAAe;QACf,UAAU;QACV,kBAAkB,EAAE,UAAU,GAAG,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RemoteFeedbackPayload } from '../types/feedback.js';
|
|
2
|
+
export type { RemoteFeedbackPayload };
|
|
3
|
+
/**
|
|
4
|
+
* Send feedback to central Supabase store (fire-and-forget).
|
|
5
|
+
* Never throws. Returns true if sent successfully, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export declare function sendFeedbackRemote(payload: RemoteFeedbackPayload): Promise<boolean>;
|
|
8
|
+
//# sourceMappingURL=feedback-remote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-remote.d.ts","sourceRoot":"","sources":["../../src/storage/feedback-remote.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIlE,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBzF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// storage/feedback-remote.ts — Remote feedback relay to Supabase (fire-and-forget)
|
|
2
|
+
// No PII is ever sent: no project paths, no user names, no emails.
|
|
3
|
+
const FEEDBACK_API = 'https://canusqigtzldstnjddio.supabase.co/functions/v1/license-api/feedback';
|
|
4
|
+
/**
|
|
5
|
+
* Send feedback to central Supabase store (fire-and-forget).
|
|
6
|
+
* Never throws. Returns true if sent successfully, false otherwise.
|
|
7
|
+
*/
|
|
8
|
+
export async function sendFeedbackRemote(payload) {
|
|
9
|
+
try {
|
|
10
|
+
const controller = new AbortController();
|
|
11
|
+
const timeout = setTimeout(() => {
|
|
12
|
+
controller.abort();
|
|
13
|
+
}, 5000); // 5s timeout
|
|
14
|
+
const res = await fetch(FEEDBACK_API, {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
headers: { 'Content-Type': 'application/json' },
|
|
17
|
+
body: JSON.stringify(payload),
|
|
18
|
+
signal: controller.signal,
|
|
19
|
+
});
|
|
20
|
+
clearTimeout(timeout);
|
|
21
|
+
return res.ok;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false; // Network error, timeout, etc. — silently fail
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=feedback-remote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-remote.js","sourceRoot":"","sources":["../../src/storage/feedback-remote.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,mEAAmE;AAInE,MAAM,YAAY,GAAG,4EAA4E,CAAC;AAIlG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA8B;IACrE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa;QAEvB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,CAAC,+CAA+C;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { FeedbackEntry, FeedbackFilter, FeedbackSummary } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Submit a new feedback entry. Auto-generates ID, timestamp, and version.
|
|
4
|
+
*/
|
|
5
|
+
export declare function submitFeedback(dataDir: string, entry: Omit<FeedbackEntry, 'id' | 'createdAt' | 'planuVersion'>): Promise<FeedbackEntry>;
|
|
6
|
+
/**
|
|
7
|
+
* Load and filter feedback entries.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getFeedback(dataDir: string, filter?: FeedbackFilter): FeedbackEntry[];
|
|
10
|
+
/**
|
|
11
|
+
* Update an existing feedback entry by ID.
|
|
12
|
+
*/
|
|
13
|
+
export declare function updateFeedback(dataDir: string, id: string, update: Partial<FeedbackEntry>): Promise<FeedbackEntry | null>;
|
|
14
|
+
/**
|
|
15
|
+
* Mark feedback as resolved, optionally linking spec and PR.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveFeedback(dataDir: string, id: string, specId?: string, prUrl?: string, notes?: string): Promise<FeedbackEntry | null>;
|
|
18
|
+
/**
|
|
19
|
+
* Compute summary statistics across all feedback.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSummary(dataDir: string): FeedbackSummary;
|
|
22
|
+
/**
|
|
23
|
+
* Find feedback entries with title similar to the given string.
|
|
24
|
+
* Uses Jaccard word overlap. Threshold defaults to 0.3.
|
|
25
|
+
*/
|
|
26
|
+
export declare function findSimilar(dataDir: string, title: string, threshold?: number): FeedbackEntry[];
|
|
27
|
+
//# sourceMappingURL=feedback-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-store.d.ts","sourceRoot":"","sources":["../../src/storage/feedback-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,eAAe,EAGhB,MAAM,mBAAmB,CAAC;AAgJ3B;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,cAAc,CAAC,GAC9D,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,aAAa,EAAE,CAerF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAC7B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkB/B;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQ/B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAqD3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,aAAa,EAAE,CAQ5F"}
|