soloforge 1.0.0 → 1.1.1
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 +4 -1
- package/dist/adapters/claude_code/claude_md.d.ts +1 -2
- package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
- package/dist/adapters/claude_code/claude_md.js +2 -76
- package/dist/adapters/claude_code/claude_md.js.map +1 -1
- package/dist/adapters/claude_code/server.d.ts +16 -0
- package/dist/adapters/claude_code/server.d.ts.map +1 -1
- package/dist/adapters/claude_code/server.js +17 -1
- package/dist/adapters/claude_code/server.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +32 -1
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +65 -30
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_config.d.ts +3 -0
- package/dist/adapters/codex/codex_config.d.ts.map +1 -0
- package/dist/adapters/codex/codex_config.js +51 -0
- package/dist/adapters/codex/codex_config.js.map +1 -0
- package/dist/adapters/codex/codex_rules.d.ts +2 -0
- package/dist/adapters/codex/codex_rules.d.ts.map +1 -0
- package/dist/adapters/codex/codex_rules.js +5 -0
- package/dist/adapters/codex/codex_rules.js.map +1 -0
- package/dist/adapters/shared/workflow_template.d.ts +3 -0
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -0
- package/dist/adapters/shared/workflow_template.js +78 -0
- package/dist/adapters/shared/workflow_template.js.map +1 -0
- package/dist/adapters/trae/trae_rules.d.ts +1 -2
- package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
- package/dist/adapters/trae/trae_rules.js +2 -75
- package/dist/adapters/trae/trae_rules.js.map +1 -1
- package/dist/bin/soloforge.js +171 -22
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/change_coordinator.d.ts +20 -5
- package/dist/engine/change_coordinator.d.ts.map +1 -1
- package/dist/engine/change_coordinator.js +36 -22
- package/dist/engine/change_coordinator.js.map +1 -1
- package/dist/engine/classifier.d.ts +7 -0
- package/dist/engine/classifier.d.ts.map +1 -1
- package/dist/engine/classifier.js +75 -3
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/code_reviewer.d.ts +37 -1
- package/dist/engine/code_reviewer.d.ts.map +1 -1
- package/dist/engine/code_reviewer.js +126 -24
- package/dist/engine/code_reviewer.js.map +1 -1
- package/dist/engine/confidence_scorer.d.ts +21 -0
- package/dist/engine/confidence_scorer.d.ts.map +1 -1
- package/dist/engine/confidence_scorer.js +19 -6
- package/dist/engine/confidence_scorer.js.map +1 -1
- package/dist/engine/contract_guard.d.ts +23 -0
- package/dist/engine/contract_guard.d.ts.map +1 -1
- package/dist/engine/contract_guard.js +152 -43
- package/dist/engine/contract_guard.js.map +1 -1
- package/dist/engine/convention_detector.d.ts +20 -0
- package/dist/engine/convention_detector.d.ts.map +1 -1
- package/dist/engine/convention_detector.js +19 -1
- package/dist/engine/convention_detector.js.map +1 -1
- package/dist/engine/debt_reporter.d.ts +5 -0
- package/dist/engine/debt_reporter.d.ts.map +1 -1
- package/dist/engine/debt_reporter.js +30 -6
- package/dist/engine/debt_reporter.js.map +1 -1
- package/dist/engine/debt_tracker.d.ts +52 -0
- package/dist/engine/debt_tracker.d.ts.map +1 -1
- package/dist/engine/debt_tracker.js +66 -1
- package/dist/engine/debt_tracker.js.map +1 -1
- package/dist/engine/debugger.d.ts +9 -0
- package/dist/engine/debugger.d.ts.map +1 -1
- package/dist/engine/debugger.js +112 -20
- package/dist/engine/debugger.js.map +1 -1
- package/dist/engine/delivery.d.ts +27 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +67 -13
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/dependency_scanner.d.ts +5 -8
- package/dist/engine/dependency_scanner.d.ts.map +1 -1
- package/dist/engine/dependency_scanner.js +46 -29
- package/dist/engine/dependency_scanner.js.map +1 -1
- package/dist/engine/evolver.d.ts +54 -0
- package/dist/engine/evolver.d.ts.map +1 -1
- package/dist/engine/evolver.js +159 -6
- package/dist/engine/evolver.js.map +1 -1
- package/dist/engine/exploration.d.ts +114 -0
- package/dist/engine/exploration.d.ts.map +1 -0
- package/dist/engine/exploration.js +414 -0
- package/dist/engine/exploration.js.map +1 -0
- package/dist/engine/failure_classifier.d.ts +28 -0
- package/dist/engine/failure_classifier.d.ts.map +1 -1
- package/dist/engine/failure_classifier.js +51 -5
- package/dist/engine/failure_classifier.js.map +1 -1
- package/dist/engine/git_deps.d.ts +29 -0
- package/dist/engine/git_deps.d.ts.map +1 -1
- package/dist/engine/git_deps.js +1 -0
- package/dist/engine/git_deps.js.map +1 -1
- package/dist/engine/impact_analyzer.d.ts +17 -0
- package/dist/engine/impact_analyzer.d.ts.map +1 -1
- package/dist/engine/impact_analyzer.js +76 -4
- package/dist/engine/impact_analyzer.js.map +1 -1
- package/dist/engine/intent_expander.d.ts +58 -0
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +173 -1
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/migration_guard.d.ts +6 -0
- package/dist/engine/migration_guard.d.ts.map +1 -1
- package/dist/engine/migration_guard.js +26 -7
- package/dist/engine/migration_guard.js.map +1 -1
- package/dist/engine/observability.d.ts +31 -7
- package/dist/engine/observability.d.ts.map +1 -1
- package/dist/engine/observability.js +88 -28
- package/dist/engine/observability.js.map +1 -1
- package/dist/engine/onboarding.d.ts +41 -1
- package/dist/engine/onboarding.d.ts.map +1 -1
- package/dist/engine/onboarding.js +83 -8
- package/dist/engine/onboarding.js.map +1 -1
- package/dist/engine/scaffolder.d.ts +10 -0
- package/dist/engine/scaffolder.d.ts.map +1 -1
- package/dist/engine/scaffolder.js +55 -10
- package/dist/engine/scaffolder.js.map +1 -1
- package/dist/engine/scope_controller.d.ts +13 -0
- package/dist/engine/scope_controller.d.ts.map +1 -1
- package/dist/engine/scope_controller.js +76 -12
- package/dist/engine/scope_controller.js.map +1 -1
- package/dist/engine/task_context.d.ts +124 -0
- package/dist/engine/task_context.d.ts.map +1 -1
- package/dist/engine/task_context.js +155 -7
- package/dist/engine/task_context.js.map +1 -1
- package/dist/engine/task_planner.d.ts +17 -0
- package/dist/engine/task_planner.d.ts.map +1 -1
- package/dist/engine/task_planner.js +51 -4
- package/dist/engine/task_planner.js.map +1 -1
- package/dist/engine/team_awareness.d.ts +17 -0
- package/dist/engine/team_awareness.d.ts.map +1 -1
- package/dist/engine/team_awareness.js +29 -11
- package/dist/engine/team_awareness.js.map +1 -1
- package/dist/engine/test_generator.d.ts +5 -4
- package/dist/engine/test_generator.d.ts.map +1 -1
- package/dist/engine/test_generator.js +22 -5
- package/dist/engine/test_generator.js.map +1 -1
- package/dist/engine/test_quality.d.ts +11 -4
- package/dist/engine/test_quality.d.ts.map +1 -1
- package/dist/engine/test_quality.js +171 -14
- package/dist/engine/test_quality.js.map +1 -1
- package/dist/engine/verifier.d.ts +41 -0
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +110 -1
- package/dist/engine/verifier.js.map +1 -1
- package/dist/git/operations.d.ts +1 -0
- package/dist/git/operations.d.ts.map +1 -1
- package/dist/git/operations.js +3 -0
- package/dist/git/operations.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts +7 -1
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +112 -37
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/loader.d.ts +31 -0
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +102 -8
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/types.d.ts +608 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/knowledge/acceptance_templates//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +19 -0
- package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +4 -0
- package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +4 -1
- package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +34 -0
- package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +66 -0
- package/templates/scaffolds/react/Form.tsx.hbs +9 -1
- package/templates/scaffolds/react/List.tsx.hbs +10 -1
- package/templates/scaffolds/react/Page.tsx.hbs +4 -1
- package/templates/scaffolds/react/service.ts.hbs +29 -0
- package/templates/scaffolds/react/types.ts.hbs +7 -1
- package/templates/scaffolds/react/use{{ModuleName}}.ts.hbs +34 -2
- package/templates/scaffolds/spring-boot/Controller.java.hbs +27 -0
- package/templates/scaffolds/spring-boot/DTO.java.hbs +7 -1
- package/templates/scaffolds/spring-boot/Entity.java.hbs +11 -1
- package/templates/scaffolds/spring-boot/ErrorCode.java.hbs +13 -1
- package/templates/scaffolds/spring-boot/Mapper.java.hbs +4 -1
- package/templates/scaffolds/spring-boot/PageResponse.java.hbs +24 -1
- package/templates/scaffolds/spring-boot/Service.java.hbs +32 -0
- package/templates/scaffolds/spring-boot/ServiceImpl.java.hbs +23 -5
- package/templates/scaffolds/spring-boot/ServiceTest.java.hbs +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent_expander.js","sourceRoot":"","sources":["../../src/engine/intent_expander.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intent_expander.js","sourceRoot":"","sources":["../../src/engine/intent_expander.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAgBpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,mDAAmD;AACnD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwD1C,CAAC,CAAC;AAmBH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAkB;IAC7C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE9E,WAAW;IACX,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC3D,CAAC,CAAC,cAAc,CAAC,cAAc;QAC/B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEf,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC;QAC1C,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC;QACjC,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IAEH,SAAS;IACT,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;IAE7C,YAAY;IACZ,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc;iBAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;iBAC9D,MAAM,CAAC,OAAO,CAAa,CAAC;YAE/B,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3C,WAAW,EACX,MAAM,CAAC,gBAAgB,CACxB,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,YAAY,GAAG,IAAI,CAAC;gBACpB,iBAAiB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,cAAc;IACd,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IAE7D,YAAY;IACZ,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEhG,eAAe;IACf,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAG,eAAe,CAAC;QAC3B,MAAM;QACN,UAAU,EAAE,SAAS;QACrB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,iBAAiB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI;SAC1B,CAAC,CAAC;QACH,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAChG,cAAc,EAAE,YAAY;QAC5B,kBAAkB,EAAE,iBAAiB;QACrC,KAAK,EAAE;YACL,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC;SACvD;QACD,UAAU;QACV,QAAQ;KACT,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;IAED,gCAAgC;IAEhC,kBAAkB;IAClB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAEnF,sBAAsB;IACtB,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAE7E,gBAAgB;IAChB,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,MAAM;QACN,cAAc;QACd,cAAc;QACd,QAAQ;KACT,CAAC,CAAC;IAEH,wCAAwC;IACxC,IAAI,oBAAsD,CAAC;IAC3D,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,oBAAoB,GAAG,aAAa,CAAC;QACrC,MAAM,IAAI;;;mBAGK,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;cACxC,oBAAoB;;;EAGhC,aAAa,CAAC,UAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;gBAGvD,aAAa,CAAC,UAAW,CAAC,gBAAgB,CAAC,OAAO;iBACjD,aAAa,CAAC,UAAW,CAAC,gBAAgB,CAAC,UAAU;gBACtD,aAAa,CAAC,UAAW,CAAC,gBAAgB,CAAC,OAAO;;;EAGhE,aAAa,CAAC,UAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;CAG7I,CAAC;IACA,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAE,EAAE,SAAS;QACtB,MAAM;QACN,KAAK;QACL,UAAU;QACV,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,iBAAiB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,cAAc,EAAE,YAAY;QAC5B,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;QAChF,QAAQ;QACR,QAAQ;QACR,oBAAoB,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;QACtF,eAAe,EAAE,oBAAoB;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CACxB,MAAc,EACd,WAAwB,EACxB,cAAqC;IAErC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,4BAA4B;IAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC;YAC3C,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,eAAe,CAAC,CAAC;QACrF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,YAAY,CAAC,eAAe,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,wBAAwB;IACxB,IAAI,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5E,QAAQ,CAAC,IAAI,CAAC,gBAAgB,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,OAAO,GAAG,MAAM,iCAAiC,YAAY,CAAC,KAAK,OAAO,YAAY,CAAC,WAAW,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnI,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAAc;IACrC,yBAAyB;IACzB,OAAO,MAAM;SACV,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,KAAK,CAAC,YAAY,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,MAAqB,EACrB,cAA8B,EAC9B,QAAiB;IAEjB,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACnD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,6CAA6C;IAC7C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,YAAY;QAC3B,cAAc,EAAE,aAAa;QAC7B,iBAAiB,EAAE,CAAC,QAAQ;QAC5B,iBAAiB,EAAE,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,eAAe;YACzE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,4BAA4B;YACvC,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,MAAc,EACd,cAA8B,EAC9B,cAAqB,EACrB,OAAsB,EACtB,QAAiB;IAEjB,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,IAAI,QAAQ,EAAE,CAAC;QACb,qDAAqD;QACrD,SAAS,CAAC,IAAI,CAAC;YACb,EAAE,EAAE,SAAS;YACb,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC;YACb,EAAE,EAAE,QAAQ;YACZ,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,2BAA2B;IAC3B,SAAS,CAAC,IAAI,CAAC;QACb,EAAE,EAAE,SAAS;QACb,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,0BAA0B;IAC1B,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,eAAe;IACf,IAAI,cAAc,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,MAAM;YACV,WAAW,EAAE,iBAAiB;YAC9B,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED,IAAI,cAAc,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,QAAQ;YACZ,WAAW,EAAE,iBAAiB;YAC9B,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAC,SAAS,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9D,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,MAAM;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,mCAAmC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACjF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,GAAmB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBAC/F,IAAI,KAAK,CAAC,CAAC,CAAC;oBAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAAqB;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC;AAED,mBAAmB;AAEnB;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAC7B,MAAc,EACd,cAA8B,EAC9B,KAAkB,EAClB,UAAqE;IAErE,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,gBAAgB;IAChB,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,cAAc,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACzC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC,aAAa;QAC1B,WAAW;QACX,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3E,eAAe,EAAE,cAAc;KAChC,CAAC;AACJ,CAAC;AAED,qBAAqB;AAErB,uDAAuD;AACvD,kCAAkC;AAClC,MAAM,oBAAoB,GAMrB;IACH;QACE,OAAO,EAAE,uCAAuC;QAChD,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE;YAC/C,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE;SACnD;QACD,cAAc,EAAE,UAAU;KAC3B;IACD;QACE,OAAO,EAAE,kCAAkC;QAC3C,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE;YAC1C,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE;SACzC;QACD,cAAc,EAAE,WAAW;KAC5B;IACD;QACE,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE;YAC9C,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,sBAAsB,EAAE;SACtD;QACD,cAAc,EAAE,UAAU;KAC3B;IACD;QACE,OAAO,EAAE,4BAA4B;QACrC,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACrC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE;SACxC;QACD,cAAc,EAAE,SAAS;KAC1B;IACD;QACE,OAAO,EAAE,yBAAyB;QAClC,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;YAC5C,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;SACzC;QACD,cAAc,EAAE,WAAW;KAC5B;IACD;QACE,OAAO,EAAE,oBAAoB;QAC7B,YAAY,EAAE,uBAAuB;QACrC,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACzC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE;SAC1C;QACD,cAAc,EAAE,OAAO;KACxB;IACD;QACE,OAAO,EAAE,uBAAuB;QAChC,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE;YACvC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE;SACtC;QACD,cAAc,EAAE,OAAO;KACxB;IACD;QACE,OAAO,EAAE,6BAA6B;QACtC,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;YAC1C,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE;SACxC;QACD,cAAc,EAAE,UAAU;KAC3B;CACF,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,cAA8B,EAAE,MAAc;IAC9E,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC;gBACZ,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,cAAc,EAAE,OAAO,CAAC,cAAc;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC;YACZ,YAAY,EAAE,0BAA0B;YACxC,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE;gBAC/C,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE;aAC3C;YACD,cAAc,EAAE,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AA8BD,4BAA4B;AAC5B,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAKnC;IACC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEpE,IAAI,UAAU,GAAG,GAAG,CAAC;IAErB,uBAAuB;IACvB,IAAI,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;SAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,8DAA8D;IAC9D,IAAI,cAAc,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACxC,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;SAAM,IAAI,cAAc,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACjD,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,mCAAmC;IACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,WAAW;IACX,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAElD,IAAI,UAAU,GAAG,oBAAoB,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU;YACV,MAAM,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,EAAE;YACrE,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,CAAC;SACvE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,MAAc,EACd,cAA8B,EAC9B,eAAsB;IAEtB,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,cAAc,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChD,cAAc,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAExD,OAAO;QACL,WAAW,EAAE;YACX,IAAI,SAAS,gBAAgB;YAC7B,mBAAmB;YACnB,uBAAuB;SACxB;QACD,gBAAgB,EAAE;YAChB,OAAO,EAAE,0BAA0B;YACnC,UAAU,EAAE,oCAAoC;YAChD,OAAO,EAAE,6BAA6B;SACvC;QACD,kBAAkB,EAAE;YAClB;gBACE,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE,iBAAiB;gBAC3B,QAAQ,EAAE,oBAAoB;aAC/B;YACD;gBACE,QAAQ,EAAE,aAAa;gBACvB,QAAQ,EAAE,iBAAiB;gBAC3B,QAAQ,EAAE,mBAAmB;aAC9B;SACF;KACF,CAAC;AACJ,CAAC;AAED,aAAa"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import type { MigrationAnalysis } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* 分析 SQL 迁移脚本 — 逐行匹配规则,生成风险评级、语句列表和回滚建议。
|
|
4
|
+
* @param content - SQL 迁移文件内容
|
|
5
|
+
* @param filename - 文件名(用于结果标识)
|
|
6
|
+
* @returns 迁移分析结果,包含风险等级(critical/warning/safe)、语句列表、回滚建议和中文摘要
|
|
7
|
+
*/
|
|
2
8
|
export declare function analyzeMigration(content: string, filename: string): MigrationAnalysis;
|
|
3
9
|
//# sourceMappingURL=migration_guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration_guard.d.ts","sourceRoot":"","sources":["../../src/engine/migration_guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"migration_guard.d.ts","sourceRoot":"","sources":["../../src/engine/migration_guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAoMzE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAsErF"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 数据库迁移守卫 — 逐行分析 SQL 迁移脚本,检测高风险操作(DROP TABLE、DELETE 无 WHERE 等),
|
|
3
|
+
* 并生成中文风险摘要和回滚建议。纯规则匹配,零 AI 依赖。
|
|
4
|
+
*/
|
|
5
|
+
/** 回滚建议模板 — 按 SQL 语句类型映射到对应的回滚操作建议 */
|
|
1
6
|
// ── Rollback suggestion templates keyed by statement type ──
|
|
2
7
|
const ROLLBACK_SUGGESTIONS = {
|
|
3
8
|
DROP_TABLE: "恢复数据需要从备份还原,建议先创建备份",
|
|
@@ -10,7 +15,11 @@ const ROLLBACK_SUGGESTIONS = {
|
|
|
10
15
|
ADD_INDEX: "大表添加索引可能造成长时间锁表,建议在低峰期执行",
|
|
11
16
|
ADD_FK: "添加外键前建议确认引用完整性,并在低峰期执行",
|
|
12
17
|
};
|
|
13
|
-
|
|
18
|
+
/**
|
|
19
|
+
* 从 SQL 行中提取表名 — 支持 TABLE/FROM/INTO 三种常见语法位置。
|
|
20
|
+
* @param line - 已转大写的 SQL 行
|
|
21
|
+
* @returns 提取到的表名,未匹配时返回 undefined
|
|
22
|
+
*/
|
|
14
23
|
function extractTableFrom(line) {
|
|
15
24
|
// TABLE <name> (covers DROP TABLE, ALTER TABLE, CREATE TABLE, RENAME TABLE)
|
|
16
25
|
const tableMatch = line.match(/TABLE\s+(\w+)/);
|
|
@@ -26,6 +35,7 @@ function extractTableFrom(line) {
|
|
|
26
35
|
return intoMatch[1];
|
|
27
36
|
return undefined;
|
|
28
37
|
}
|
|
38
|
+
/** 高风险规则集 — 检测 DROP TABLE、DROP COLUMN、修改列类型、DELETE 无 WHERE、TRUNCATE 等危险操作 */
|
|
29
39
|
const CRITICAL_RULES = [
|
|
30
40
|
{
|
|
31
41
|
test: (upper) => /DROP\s+TABLE/.test(upper),
|
|
@@ -43,7 +53,7 @@ const CRITICAL_RULES = [
|
|
|
43
53
|
test: (upper, raw) => {
|
|
44
54
|
if (!/ALTER\s+COLUMN/.test(upper) && !/ALTER\s+TABLE\b/.test(upper))
|
|
45
55
|
return false;
|
|
46
|
-
//
|
|
56
|
+
// 检测列类型变更模式: TYPE、USING、SET DATA TYPE 关键字
|
|
47
57
|
return /TYPE\s|SET\s+DATA\s+TYPE\s|USING\s/.test(upper);
|
|
48
58
|
},
|
|
49
59
|
type: "ALTER_COLUMN",
|
|
@@ -66,10 +76,10 @@ const CRITICAL_RULES = [
|
|
|
66
76
|
test: (upper, raw, _lines, _lineIndex) => {
|
|
67
77
|
if (!/DELETE\s+FROM/.test(upper))
|
|
68
78
|
return false;
|
|
69
|
-
//
|
|
79
|
+
// 当前行无 WHERE — 向后预查最多 10 行,寻找 WHERE 子句或语句结束符(;)
|
|
70
80
|
if (/WHERE\b/.test(upper))
|
|
71
81
|
return false;
|
|
72
|
-
//
|
|
82
|
+
// 向后预查最多 10 行,若遇到分号则语句结束
|
|
73
83
|
const lines = _lines;
|
|
74
84
|
const startIdx = _lineIndex;
|
|
75
85
|
const lookAheadLimit = Math.min(lines.length, startIdx + 10);
|
|
@@ -95,6 +105,7 @@ const CRITICAL_RULES = [
|
|
|
95
105
|
description: "清空表操作",
|
|
96
106
|
},
|
|
97
107
|
];
|
|
108
|
+
/** 警告规则集 — 检测 ADD COLUMN 无 DEFAULT 的 NOT NULL、RENAME、添加索引、添加外键等需谨慎操作 */
|
|
98
109
|
const WARNING_RULES = [
|
|
99
110
|
{
|
|
100
111
|
test: (upper, raw) => {
|
|
@@ -126,6 +137,7 @@ const WARNING_RULES = [
|
|
|
126
137
|
description: "添加外键约束,需确认引用完整性",
|
|
127
138
|
},
|
|
128
139
|
];
|
|
140
|
+
/** 安全规则集 — 检测 CREATE TABLE、ADD COLUMN(可空/有默认值)、INSERT、COMMENT 等低风险操作 */
|
|
129
141
|
const SAFE_RULES = [
|
|
130
142
|
{
|
|
131
143
|
test: (upper) => /CREATE\s+TABLE/.test(upper),
|
|
@@ -168,8 +180,15 @@ const SAFE_RULES = [
|
|
|
168
180
|
description: "添加带默认值的列",
|
|
169
181
|
},
|
|
170
182
|
];
|
|
183
|
+
// 合并所有规则,按优先级排列(critical → warning → safe),每行匹配到第一条规则即停止
|
|
171
184
|
const ALL_RULES = [...CRITICAL_RULES, ...WARNING_RULES, ...SAFE_RULES];
|
|
172
185
|
// ── Public API ──
|
|
186
|
+
/**
|
|
187
|
+
* 分析 SQL 迁移脚本 — 逐行匹配规则,生成风险评级、语句列表和回滚建议。
|
|
188
|
+
* @param content - SQL 迁移文件内容
|
|
189
|
+
* @param filename - 文件名(用于结果标识)
|
|
190
|
+
* @returns 迁移分析结果,包含风险等级(critical/warning/safe)、语句列表、回滚建议和中文摘要
|
|
191
|
+
*/
|
|
173
192
|
export function analyzeMigration(content, filename) {
|
|
174
193
|
const lines = content.split("\n");
|
|
175
194
|
const statements = [];
|
|
@@ -180,7 +199,7 @@ export function analyzeMigration(content, filename) {
|
|
|
180
199
|
if (raw === "" || raw.startsWith("--"))
|
|
181
200
|
continue;
|
|
182
201
|
const upper = raw.toUpperCase();
|
|
183
|
-
//
|
|
202
|
+
// 按优先级顺序尝试匹配规则(critical → warning → safe),首条命中即终止
|
|
184
203
|
for (const rule of ALL_RULES) {
|
|
185
204
|
if (rule.test(upper, raw, lines, i)) {
|
|
186
205
|
const table = extractTableFrom(upper);
|
|
@@ -201,7 +220,7 @@ export function analyzeMigration(content, filename) {
|
|
|
201
220
|
}
|
|
202
221
|
}
|
|
203
222
|
}
|
|
204
|
-
//
|
|
223
|
+
// 确定整体风险等级: 有 critical 则为 critical,有 warning 则为 warning,否则 safe
|
|
205
224
|
const hasCritical = statements.some((s) => s.risk === "critical");
|
|
206
225
|
const hasWarning = statements.some((s) => s.risk === "warning");
|
|
207
226
|
const risk_level = hasCritical
|
|
@@ -215,7 +234,7 @@ export function analyzeMigration(content, filename) {
|
|
|
215
234
|
const safeCount = statements.filter((s) => s.risk === "safe").length;
|
|
216
235
|
// Build Chinese summary
|
|
217
236
|
const summary = `检测到 ${statements.length} 条语句:${criticalCount} 条高风险,${warningCount} 条警告,${safeCount} 条安全`;
|
|
218
|
-
//
|
|
237
|
+
// 回滚建议按原始出现顺序排列,仅保留非安全操作的唯一建议
|
|
219
238
|
const rollbackSuggestions = statements
|
|
220
239
|
.filter((s) => s.risk !== "safe" && ROLLBACK_SUGGESTIONS[s.type])
|
|
221
240
|
.reduce((acc, s) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration_guard.js","sourceRoot":"","sources":["../../src/engine/migration_guard.ts"],"names":[],"mappings":"AAEA,8DAA8D;AAE9D,MAAM,oBAAoB,GAA2B;IACnD,UAAU,EAAE,qBAAqB;IACjC,WAAW,EAAE,mBAAmB;IAChC,eAAe,EAAE,sBAAsB;IACvC,YAAY,EAAE,qBAAqB;IACnC,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,oCAAoC;IAClD,MAAM,EAAE,oBAAoB;IAC5B,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,wBAAwB;CACjC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"migration_guard.js","sourceRoot":"","sources":["../../src/engine/migration_guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,54 @@
|
|
|
1
1
|
import type { MetricsSnapshot, AlertItem, ObservabilityReport, CostBudget, CostAlert } from "../types.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* 采集任务目录下的所有 TaskContext,计算聚合指标。
|
|
4
|
+
* 包括通过率、重试率、平均耗时和知识匹配率。
|
|
5
|
+
* @param stateDir - 任务状态文件目录路径
|
|
6
|
+
* @returns 指标快照,包含通过率、重试率、平均耗时、知识匹配率
|
|
4
7
|
*/
|
|
5
8
|
export declare function collectMetrics(stateDir: string): Promise<MetricsSnapshot>;
|
|
6
9
|
/**
|
|
7
|
-
*
|
|
10
|
+
* 基于阈值检测指标异常,生成告警列表。
|
|
11
|
+
* 告警规则:
|
|
12
|
+
* - 失败率 >= 30% → critical
|
|
13
|
+
* - 失败率 >= 15% → warning
|
|
14
|
+
* - 重试率 > 40% → warning
|
|
15
|
+
* - 平均耗时 > 5 分钟 → warning
|
|
16
|
+
* - 知识匹配率 < 50% → warning
|
|
17
|
+
* @param snapshot - 采集到的指标快照
|
|
18
|
+
* @returns 告警条目列表(按检测顺序排列)
|
|
8
19
|
*/
|
|
9
20
|
export declare function checkAlerts(snapshot: MetricsSnapshot): AlertItem[];
|
|
10
21
|
/**
|
|
11
|
-
*
|
|
22
|
+
* 生成指定周期内的完整可观测性报告。
|
|
23
|
+
* 包含聚合指标、告警、每日趋势数据和中文摘要。
|
|
24
|
+
* @param stateDir - 任务状态文件目录路径
|
|
25
|
+
* @param periodDays - 报告回溯天数,默认 30 天
|
|
26
|
+
* @returns 可观测性报告,包含时间范围、指标快照、告警、趋势和摘要
|
|
12
27
|
*/
|
|
13
28
|
export declare function generateReport(stateDir: string, periodDays?: number): Promise<ObservabilityReport>;
|
|
14
29
|
/**
|
|
15
|
-
*
|
|
30
|
+
* 根据任务数量和类型粗略估算 Token 消耗。
|
|
31
|
+
* @param stateDir - 任务状态文件目录路径
|
|
32
|
+
* @returns 包含总估算 Token 数和按任务类型分组的估算明细
|
|
16
33
|
*/
|
|
17
34
|
export declare function estimateCost(stateDir: string): Promise<{
|
|
18
35
|
total_estimated_tokens: number;
|
|
19
36
|
by_task_type: Record<string, number>;
|
|
20
37
|
}>;
|
|
21
38
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
39
|
+
* 检查 Token 用量是否超出预算,生成超支或接近预算(>=80%)的告警。
|
|
40
|
+
* 分别检查日、周、月三个维度的预算。
|
|
41
|
+
* @param stateDir - 任务状态文件目录路径
|
|
42
|
+
* @param budget - 成本预算配置(含日/周/月 Token 限额)
|
|
43
|
+
* @returns 成本告警列表
|
|
24
44
|
*/
|
|
25
45
|
export declare function checkCostBudget(stateDir: string, budget: CostBudget): Promise<CostAlert[]>;
|
|
26
46
|
/**
|
|
27
|
-
*
|
|
47
|
+
* 获取最近指定天数的每日 Token 用量趋势。
|
|
48
|
+
* 缺失的日期填充为 0,确保时间线连续。
|
|
49
|
+
* @param stateDir - 任务状态文件目录路径
|
|
50
|
+
* @param days - 回溯天数,默认 30 天
|
|
51
|
+
* @returns 按日期排列的每日 Token 消耗估算数组
|
|
28
52
|
*/
|
|
29
53
|
export declare function getCostTrend(stateDir: string, days?: number): Promise<Array<{
|
|
30
54
|
date: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/engine/observability.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/engine/observability.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAuFvH;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA+C/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,EAAE,CA0DlE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,MAAW,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAmE9B;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,sBAAsB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CAcnF;AAoBD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA8EhG;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAiC5D"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import fss from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* 系统可观测模块 — 采集任务指标、检测异常告警、生成周期报告和成本估算。
|
|
6
|
+
* 基于 TaskContext JSON 文件聚合计算,零外部依赖。
|
|
7
|
+
*/
|
|
8
|
+
// ── 各任务类型的单次 Token 消耗估算值 ──
|
|
9
|
+
// 用于成本预估和预算检查,单位为 token 数
|
|
5
10
|
const TOKEN_ESTIMATES = {
|
|
6
|
-
feature: 8_000,
|
|
7
|
-
bugfix: 5_000,
|
|
8
|
-
refactor: 10_000,
|
|
9
|
-
hotfix: 4_000,
|
|
11
|
+
feature: 8_000, // 新功能:涉及上下文理解和代码生成,估算较高
|
|
12
|
+
bugfix: 5_000, // 缺陷修复:上下文范围相对集中
|
|
13
|
+
refactor: 10_000, // 重构:需要全局理解和多文件修改,估算最高
|
|
14
|
+
hotfix: 4_000, // 紧急修复:范围明确,耗时较短
|
|
10
15
|
};
|
|
16
|
+
/** 未知任务类型的默认 Token 估算值 */
|
|
11
17
|
const DEFAULT_TOKEN_ESTIMATE = 3_000;
|
|
18
|
+
/**
|
|
19
|
+
* 从指定目录加载所有 TaskContext JSON 文件。
|
|
20
|
+
* 跳过损坏或格式不正确的文件,忽略无 task_id 或 created_at 的无效条目。
|
|
21
|
+
* @param stateDir - 任务状态文件目录路径
|
|
22
|
+
* @returns 有效的任务上下文列表(附加文件 mtime 信息)
|
|
23
|
+
*/
|
|
12
24
|
async function loadTasks(stateDir) {
|
|
13
25
|
const tasks = [];
|
|
14
26
|
let files;
|
|
@@ -37,19 +49,30 @@ async function loadTasks(stateDir) {
|
|
|
37
49
|
}
|
|
38
50
|
return tasks;
|
|
39
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* 计算单个任务的持续时间(毫秒)。
|
|
54
|
+
* 已完成任务使用文件修改时间作为结束时间的近似值,避免 "now - created" 一直增长的问题。
|
|
55
|
+
* 进行中任务使用当前时间作为结束时间。
|
|
56
|
+
* @param task - 任务上下文
|
|
57
|
+
* @param now - 当前时间戳(毫秒)
|
|
58
|
+
* @param fileMtimeMs - 任务文件最后修改时间(毫秒),用于已完成任务的精确耗时计算
|
|
59
|
+
* @returns 任务持续时间(毫秒)
|
|
60
|
+
*/
|
|
40
61
|
function taskDurationMs(task, now, fileMtimeMs) {
|
|
41
62
|
const created = new Date(task.created_at).getTime();
|
|
42
|
-
//
|
|
43
|
-
// This is more accurate than "now - created_at" which keeps growing indefinitely.
|
|
63
|
+
// 已完成任务:用文件 mtime 近似任务完成时刻,比 "now - created_at" 更准确
|
|
44
64
|
if (task.status === "done" && fileMtimeMs && fileMtimeMs > created) {
|
|
45
65
|
return fileMtimeMs - created;
|
|
46
66
|
}
|
|
47
|
-
//
|
|
67
|
+
// 进行中任务:用当前时间作为截止点
|
|
48
68
|
return now - created;
|
|
49
69
|
}
|
|
50
|
-
// ──
|
|
70
|
+
// ── 公开接口 ──
|
|
51
71
|
/**
|
|
52
|
-
*
|
|
72
|
+
* 采集任务目录下的所有 TaskContext,计算聚合指标。
|
|
73
|
+
* 包括通过率、重试率、平均耗时和知识匹配率。
|
|
74
|
+
* @param stateDir - 任务状态文件目录路径
|
|
75
|
+
* @returns 指标快照,包含通过率、重试率、平均耗时、知识匹配率
|
|
53
76
|
*/
|
|
54
77
|
export async function collectMetrics(stateDir) {
|
|
55
78
|
const tasks = await loadTasks(stateDir);
|
|
@@ -67,13 +90,18 @@ export async function collectMetrics(stateDir) {
|
|
|
67
90
|
const total = tasks.length;
|
|
68
91
|
const doneCount = tasks.filter((t) => t.status === "done").length;
|
|
69
92
|
const passRate = doneCount / total;
|
|
93
|
+
// 统计有过失败历史的任务(即经历过重试的任务)
|
|
70
94
|
const retriedCount = tasks.filter((t) => t.execution && t.execution.failure_history && t.execution.failure_history.length > 0).length;
|
|
71
95
|
const retryRate = retriedCount / total;
|
|
96
|
+
// 计算所有任务的平均持续时间
|
|
72
97
|
const durations = tasks.map((t) => taskDurationMs(t, now, t._mtimeMs));
|
|
73
98
|
const avgDuration = durations.reduce((a, b) => a + b, 0) / total;
|
|
99
|
+
// 知识匹配率:在有过 expansion 的任务中,匹配到知识条目的比例
|
|
74
100
|
const tasksWithExpansion = tasks.filter((t) => !!t.expansion);
|
|
75
101
|
const knowledgeHitCount = tasksWithExpansion.filter((t) => t.expansion.matched_knowledge && t.expansion.matched_knowledge.length > 0).length;
|
|
102
|
+
// 避免除零:无 expansion 记录时知识匹配率为 0
|
|
76
103
|
const knowledgeHitRate = tasksWithExpansion.length > 0 ? knowledgeHitCount / tasksWithExpansion.length : 0;
|
|
104
|
+
// 保留 3 位小数精度
|
|
77
105
|
return {
|
|
78
106
|
timestamp: new Date(now).toISOString(),
|
|
79
107
|
total_tasks: total,
|
|
@@ -84,11 +112,19 @@ export async function collectMetrics(stateDir) {
|
|
|
84
112
|
};
|
|
85
113
|
}
|
|
86
114
|
/**
|
|
87
|
-
*
|
|
115
|
+
* 基于阈值检测指标异常,生成告警列表。
|
|
116
|
+
* 告警规则:
|
|
117
|
+
* - 失败率 >= 30% → critical
|
|
118
|
+
* - 失败率 >= 15% → warning
|
|
119
|
+
* - 重试率 > 40% → warning
|
|
120
|
+
* - 平均耗时 > 5 分钟 → warning
|
|
121
|
+
* - 知识匹配率 < 50% → warning
|
|
122
|
+
* @param snapshot - 采集到的指标快照
|
|
123
|
+
* @returns 告警条目列表(按检测顺序排列)
|
|
88
124
|
*/
|
|
89
125
|
export function checkAlerts(snapshot) {
|
|
90
126
|
const alerts = [];
|
|
91
|
-
//
|
|
127
|
+
// 失败率超过 30% 时触发严重告警
|
|
92
128
|
if (snapshot.pass_rate < 0.7 && snapshot.total_tasks > 0) {
|
|
93
129
|
alerts.push({
|
|
94
130
|
level: "critical",
|
|
@@ -98,7 +134,7 @@ export function checkAlerts(snapshot) {
|
|
|
98
134
|
message: "近期任务失败率过高",
|
|
99
135
|
});
|
|
100
136
|
}
|
|
101
|
-
//
|
|
137
|
+
// 失败率超过 15% 时触发警告告警
|
|
102
138
|
else if (snapshot.pass_rate < 0.85 && snapshot.total_tasks > 0) {
|
|
103
139
|
alerts.push({
|
|
104
140
|
level: "warning",
|
|
@@ -108,7 +144,7 @@ export function checkAlerts(snapshot) {
|
|
|
108
144
|
message: "任务失败率呈上升趋势",
|
|
109
145
|
});
|
|
110
146
|
}
|
|
111
|
-
//
|
|
147
|
+
// 重试率超过 40% 说明任务首次执行成功率偏低
|
|
112
148
|
if (snapshot.retry_rate > 0.4) {
|
|
113
149
|
alerts.push({
|
|
114
150
|
level: "warning",
|
|
@@ -118,7 +154,7 @@ export function checkAlerts(snapshot) {
|
|
|
118
154
|
message: "任务重试率偏高",
|
|
119
155
|
});
|
|
120
156
|
}
|
|
121
|
-
//
|
|
157
|
+
// 平均耗时超过 5 分钟(300,000ms)说明任务可能过重
|
|
122
158
|
if (snapshot.avg_duration_ms > 300_000) {
|
|
123
159
|
alerts.push({
|
|
124
160
|
level: "warning",
|
|
@@ -128,7 +164,7 @@ export function checkAlerts(snapshot) {
|
|
|
128
164
|
message: "平均任务耗时过长",
|
|
129
165
|
});
|
|
130
166
|
}
|
|
131
|
-
//
|
|
167
|
+
// 知识匹配率低于 50% 提示需要补充项目知识
|
|
132
168
|
if (snapshot.knowledge_hit_rate < 0.5 && snapshot.total_tasks > 0) {
|
|
133
169
|
alerts.push({
|
|
134
170
|
level: "warning",
|
|
@@ -141,10 +177,15 @@ export function checkAlerts(snapshot) {
|
|
|
141
177
|
return alerts;
|
|
142
178
|
}
|
|
143
179
|
/**
|
|
144
|
-
*
|
|
180
|
+
* 生成指定周期内的完整可观测性报告。
|
|
181
|
+
* 包含聚合指标、告警、每日趋势数据和中文摘要。
|
|
182
|
+
* @param stateDir - 任务状态文件目录路径
|
|
183
|
+
* @param periodDays - 报告回溯天数,默认 30 天
|
|
184
|
+
* @returns 可观测性报告,包含时间范围、指标快照、告警、趋势和摘要
|
|
145
185
|
*/
|
|
146
186
|
export async function generateReport(stateDir, periodDays = 30) {
|
|
147
187
|
const now = new Date();
|
|
188
|
+
// 计算报告起始时间点
|
|
148
189
|
const start = new Date(now.getTime() - periodDays * 24 * 60 * 60 * 1000);
|
|
149
190
|
const period = {
|
|
150
191
|
start: start.toISOString(),
|
|
@@ -152,18 +193,19 @@ export async function generateReport(stateDir, periodDays = 30) {
|
|
|
152
193
|
};
|
|
153
194
|
const snapshot = await collectMetrics(stateDir);
|
|
154
195
|
const alerts = checkAlerts(snapshot);
|
|
155
|
-
//
|
|
196
|
+
// 按创建日期将任务分桶,构建每日趋势数据
|
|
156
197
|
const tasks = await loadTasks(stateDir);
|
|
157
198
|
const dailyMap = new Map();
|
|
158
199
|
for (const task of tasks) {
|
|
159
200
|
const taskDate = new Date(task.created_at);
|
|
160
201
|
if (taskDate >= start && taskDate <= now) {
|
|
161
|
-
const dayKey = taskDate.toISOString().slice(0, 10); // YYYY-MM-DD
|
|
202
|
+
const dayKey = taskDate.toISOString().slice(0, 10); // YYYY-MM-DD 格式作为分桶键
|
|
162
203
|
const bucket = dailyMap.get(dayKey) ?? [];
|
|
163
204
|
bucket.push(task);
|
|
164
205
|
dailyMap.set(dayKey, bucket);
|
|
165
206
|
}
|
|
166
207
|
}
|
|
208
|
+
// 按日期升序排列,确保趋势时间线正确
|
|
167
209
|
// Sort days chronologically
|
|
168
210
|
const sortedDays = Array.from(dailyMap.keys()).sort();
|
|
169
211
|
const passRateValues = [];
|
|
@@ -192,7 +234,9 @@ export async function generateReport(stateDir, periodDays = 30) {
|
|
|
192
234
|
return { period, snapshot, alerts, trends, summary };
|
|
193
235
|
}
|
|
194
236
|
/**
|
|
195
|
-
*
|
|
237
|
+
* 根据任务数量和类型粗略估算 Token 消耗。
|
|
238
|
+
* @param stateDir - 任务状态文件目录路径
|
|
239
|
+
* @returns 包含总估算 Token 数和按任务类型分组的估算明细
|
|
196
240
|
*/
|
|
197
241
|
export async function estimateCost(stateDir) {
|
|
198
242
|
const tasks = await loadTasks(stateDir);
|
|
@@ -206,18 +250,27 @@ export async function estimateCost(stateDir) {
|
|
|
206
250
|
}
|
|
207
251
|
return { total_estimated_tokens: total, by_task_type: byTaskType };
|
|
208
252
|
}
|
|
209
|
-
// ──
|
|
253
|
+
// ── 成本预算检查 ──
|
|
254
|
+
/** 从 ISO 日期字符串提取 YYYY-MM-DD 日期键 */
|
|
210
255
|
function dateKey(iso) {
|
|
211
256
|
return iso.slice(0, 10); // YYYY-MM-DD
|
|
212
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* 计算指定天数前的零点时间戳(毫秒)。
|
|
260
|
+
* @param days - 回溯天数
|
|
261
|
+
* @returns 对应日期零点的时间戳
|
|
262
|
+
*/
|
|
213
263
|
function daysAgoMs(days) {
|
|
214
264
|
const d = new Date();
|
|
215
265
|
d.setHours(0, 0, 0, 0);
|
|
216
266
|
return d.getTime() - days * 24 * 60 * 60 * 1000;
|
|
217
267
|
}
|
|
218
268
|
/**
|
|
219
|
-
*
|
|
220
|
-
*
|
|
269
|
+
* 检查 Token 用量是否超出预算,生成超支或接近预算(>=80%)的告警。
|
|
270
|
+
* 分别检查日、周、月三个维度的预算。
|
|
271
|
+
* @param stateDir - 任务状态文件目录路径
|
|
272
|
+
* @param budget - 成本预算配置(含日/周/月 Token 限额)
|
|
273
|
+
* @returns 成本告警列表
|
|
221
274
|
*/
|
|
222
275
|
export async function checkCostBudget(stateDir, budget) {
|
|
223
276
|
const tasks = await loadTasks(stateDir);
|
|
@@ -231,7 +284,7 @@ export async function checkCostBudget(stateDir, budget) {
|
|
|
231
284
|
}
|
|
232
285
|
const today = dateKey(new Date().toISOString());
|
|
233
286
|
const todayTokens = dayMap.get(today) ?? 0;
|
|
234
|
-
//
|
|
287
|
+
// 周维度:最近 7 天(含今天),从 6 天前的零点开始计算
|
|
235
288
|
let weeklyTokens = 0;
|
|
236
289
|
for (const task of tasks) {
|
|
237
290
|
const taskMs = new Date(task.created_at).getTime();
|
|
@@ -240,7 +293,7 @@ export async function checkCostBudget(stateDir, budget) {
|
|
|
240
293
|
weeklyTokens += TOKEN_ESTIMATES[taskType] ?? DEFAULT_TOKEN_ESTIMATE;
|
|
241
294
|
}
|
|
242
295
|
}
|
|
243
|
-
//
|
|
296
|
+
// 月维度:最近 30 天(含今天),从 29 天前的零点开始计算
|
|
244
297
|
let monthlyTokens = 0;
|
|
245
298
|
for (const task of tasks) {
|
|
246
299
|
const taskMs = new Date(task.created_at).getTime();
|
|
@@ -249,11 +302,13 @@ export async function checkCostBudget(stateDir, budget) {
|
|
|
249
302
|
monthlyTokens += TOKEN_ESTIMATES[taskType] ?? DEFAULT_TOKEN_ESTIMATE;
|
|
250
303
|
}
|
|
251
304
|
}
|
|
305
|
+
// 检查单个时间周期的预算使用情况
|
|
252
306
|
// Helper to check and push alerts
|
|
253
307
|
function checkPeriod(period, used, limit) {
|
|
254
308
|
if (limit <= 0)
|
|
255
|
-
return;
|
|
309
|
+
return; // 未配置限额则跳过
|
|
256
310
|
const ratio = used / limit;
|
|
311
|
+
// 用量达到或超过预算 100% 时触发严重告警
|
|
257
312
|
if (ratio >= 1) {
|
|
258
313
|
alerts.push({
|
|
259
314
|
level: "critical",
|
|
@@ -262,6 +317,7 @@ export async function checkCostBudget(stateDir, budget) {
|
|
|
262
317
|
limit,
|
|
263
318
|
message: `${period === "daily" ? "今日" : period === "weekly" ? "本周" : "本月"} token 用量已超出预算(${used.toLocaleString()} / ${limit.toLocaleString()})`,
|
|
264
319
|
});
|
|
320
|
+
// 用量达到预算 80% 时触发预警(提前告警)
|
|
265
321
|
}
|
|
266
322
|
else if (ratio >= 0.8) {
|
|
267
323
|
alerts.push({
|
|
@@ -279,7 +335,11 @@ export async function checkCostBudget(stateDir, budget) {
|
|
|
279
335
|
return alerts;
|
|
280
336
|
}
|
|
281
337
|
/**
|
|
282
|
-
*
|
|
338
|
+
* 获取最近指定天数的每日 Token 用量趋势。
|
|
339
|
+
* 缺失的日期填充为 0,确保时间线连续。
|
|
340
|
+
* @param stateDir - 任务状态文件目录路径
|
|
341
|
+
* @param days - 回溯天数,默认 30 天
|
|
342
|
+
* @returns 按日期排列的每日 Token 消耗估算数组
|
|
283
343
|
*/
|
|
284
344
|
export async function getCostTrend(stateDir, days = 30) {
|
|
285
345
|
const tasks = await loadTasks(stateDir);
|
|
@@ -295,7 +355,7 @@ export async function getCostTrend(stateDir, days = 30) {
|
|
|
295
355
|
const day = dateKey(task.created_at);
|
|
296
356
|
dayMap.set(day, (dayMap.get(day) ?? 0) + perTask);
|
|
297
357
|
}
|
|
298
|
-
//
|
|
358
|
+
// 填充缺失日期为 0,保证趋势图表连续
|
|
299
359
|
const result = [];
|
|
300
360
|
const now = new Date();
|
|
301
361
|
for (let i = days - 1; i >= 0; i--) {
|