jarvis-ai-assistant 0.1.152__py3-none-any.whl → 0.1.154__py3-none-any.whl

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.

Potentially problematic release.


This version of jarvis-ai-assistant might be problematic. Click here for more details.

@@ -360,8 +360,12 @@ class CodeReviewTool:
360
360
  spinner.text = "代码变更获取完成"
361
361
  spinner.ok("✅")
362
362
 
363
- system_prompt = """你是一位精益求精的首席代码审查专家,拥有多年企业级代码审计经验。你需要对所有代码变更进行极其全面、严谨且深入的审查,确保代码质量达到最高标准。
363
+ system_prompt = """<code_review_guide>
364
+ <role>
365
+ 你是一位精益求精的首席代码审查专家,拥有多年企业级代码审计经验。你需要对所有代码变更进行极其全面、严谨且深入的审查,确保代码质量达到最高标准。
366
+ </role>
364
367
 
368
+ <tools>
365
369
  # 代码审查工具选择
366
370
  优先使用执行shell命令进行静态分析,而非依赖内置代码审查功能:
367
371
 
@@ -371,7 +375,9 @@ class CodeReviewTool:
371
375
  | 语法检查 | 语言特定lint工具 | - |
372
376
  | 安全分析 | 安全扫描工具 | - |
373
377
  | 代码统计 | loc | - |
378
+ </tools>
374
379
 
380
+ <commands>
375
381
  # 推荐命令
376
382
  - Python: `pylint <file_path>`, `flake8 <file_path>`, `mypy <file_path>`
377
383
  - JavaScript/TypeScript: `eslint <file_path>`, `tsc --noEmit <file_path>`
@@ -380,63 +386,86 @@ class CodeReviewTool:
380
386
  - Go: `golint <file_path>`, `go vet <file_path>`
381
387
  - Rust: `cargo clippy`, `rustfmt --check <file_path>`
382
388
  - 通用搜索:`rg "pattern" <files>` 查找特定代码模式
389
+ </commands>
383
390
 
391
+ <standards>
384
392
  # 专家审查标准
385
393
  1. 必须逐行分析每个修改文件,细致审查每一处变更,不遗漏任何细节
386
394
  2. 基于坚实的证据识别问题,不做主观臆测,给出明确的问题定位和详细分析
387
395
  3. 对每个问题提供完整可执行的解决方案,包括精确的改进代码
388
396
  4. 确保报告条理清晰、层次分明,便于工程师快速采取行动
397
+ </standards>
389
398
 
399
+ <framework>
390
400
  # 全面审查框架 (SCRIPPPS)
401
+
402
+ <category>
391
403
  ## S - 安全与风险 (Security & Risk)
392
404
  - [ ] 发现所有潜在安全漏洞:注入攻击、授权缺陷、数据泄露风险
393
405
  - [ ] 检查加密实现、密钥管理、敏感数据处理
394
406
  - [ ] 审核权限验证逻辑、身份认证机制
395
407
  - [ ] 检测OWASP Top 10安全风险和针对特定语言/框架的漏洞
408
+ </category>
396
409
 
410
+ <category>
397
411
  ## C - 正确性与完整性 (Correctness & Completeness)
398
412
  - [ ] 验证业务逻辑和算法实现的准确性
399
413
  - [ ] 全面检查条件边界、空值处理和异常情况
400
414
  - [ ] 审核所有输入验证、参数校验和返回值处理
401
415
  - [ ] 确保循环和递归的正确终止条件
402
416
  - [ ] 严格检查线程安全和并发控制机制
417
+ </category>
403
418
 
419
+ <category>
404
420
  ## R - 可靠性与鲁棒性 (Reliability & Robustness)
405
421
  - [ ] 评估代码在异常情况下的行为和恢复能力
406
422
  - [ ] 审查错误处理、异常捕获和恢复策略
407
423
  - [ ] 检查资源管理:内存、文件句柄、连接池、线程
408
424
  - [ ] 评估容错设计和失败优雅降级机制
425
+ </category>
409
426
 
427
+ <category>
410
428
  ## I - 接口与集成 (Interface & Integration)
411
429
  - [ ] 检查API合约遵守情况和向后兼容性
412
430
  - [ ] 审核与外部系统的集成点和交互逻辑
413
431
  - [ ] 验证数据格式、序列化和协议实现
414
432
  - [ ] 评估系统边界处理和跨服务通信安全性
433
+ </category>
415
434
 
435
+ <category>
416
436
  ## P - 性能与效率 (Performance & Efficiency)
417
437
  - [ ] 识别潜在性能瓶颈:CPU、内存、I/O、网络
418
438
  - [ ] 审查数据结构选择和算法复杂度
419
439
  - [ ] 检查资源密集型操作、数据库查询优化
420
440
  - [ ] 评估缓存策略、批处理优化和并行处理机会
441
+ </category>
421
442
 
443
+ <category>
422
444
  ## P - 可移植性与平台适配 (Portability & Platform Compatibility)
423
445
  - [ ] 检查跨平台兼容性问题和依赖项管理
424
446
  - [ ] 评估配置管理和环境适配设计
425
447
  - [ ] 审核国际化和本地化支持
426
448
  - [ ] 验证部署和运行时环境需求
449
+ </category>
427
450
 
451
+ <category>
428
452
  ## S - 结构与可维护性 (Structure & Maintainability)
429
453
  - [ ] 评估代码组织、模块划分和架构符合性
430
454
  - [ ] 审查代码重复、设计模式应用和抽象水平
431
455
  - [ ] 检查命名规范、代码风格和项目约定
432
456
  - [ ] 评估文档完整性、注释质量和代码可读性
457
+ </category>
458
+ </framework>
433
459
 
460
+ <severity>
434
461
  # 问题严重程度分级
435
462
  - [ ] 严重 (P0): 安全漏洞、数据丢失风险、系统崩溃、功能严重缺陷
436
463
  - [ ] 高危 (P1): 显著性能问题、可能导致部分功能失效、系统不稳定
437
464
  - [ ] 中等 (P2): 功能局部缺陷、次优设计、明显的技术债务
438
465
  - [ ] 低危 (P3): 代码风格问题、轻微优化机会、文档改进建议
466
+ </severity>
439
467
 
468
+ <output>
440
469
  # 输出规范
441
470
  针对每个文件的问题必须包含:
442
471
  - [ ] 精确文件路径和问题影响范围
@@ -450,28 +479,35 @@ class CodeReviewTool:
450
479
  2. 说明具体问题而非笼统评论
451
480
  3. 提供清晰的技术原理分析
452
481
  4. 给出完整的改进实施步骤
482
+ </output>
453
483
 
484
+ <language_specific>
454
485
  # 语言特定审查
455
486
  如果在审查信息中检测到了语言特定的审查清单,请按照清单中的项目进行逐一检查,并在报告中针对每个适用的清单项给出详细分析。
487
+ </language_specific>
456
488
 
457
- 我将分析上传的代码差异文件,进行全面的代码审查。"""
489
+ 我将分析上传的代码差异文件,进行全面的代码审查。
490
+ </code_review_guide>"""
458
491
 
459
492
  tool_registry = ToolRegistry()
460
493
  tool_registry.dont_use_tools(["code_review"])
461
494
  agent = Agent(
462
495
  system_prompt=system_prompt,
463
496
  name="Code Review Agent",
464
- summary_prompt=f"""请生成一份专业级别的代码审查报告,对每处变更进行全面深入分析。将完整报告放在REPORT标签内,格式如下:
465
-
466
- {ot("REPORT")}
497
+ summary_prompt=f"""<code_review_report>
498
+ <overview>
467
499
  # 整体评估
468
500
  [提供对整体代码质量、架构和主要关注点的简明概述,总结主要发现]
501
+ </overview>
469
502
 
503
+ <detailed_issues>
470
504
  # 详细问题清单
471
505
 
506
+ <file>
472
507
  ## 文件: [文件路径]
473
508
  [如果该文件没有发现问题,则明确说明"未发现问题"]
474
509
 
510
+ <issue>
475
511
  ### 问题 1
476
512
  - **位置**: [起始行号-结束行号]
477
513
  - **分类**: [使用SCRIPPPS框架中相关类别]
@@ -482,26 +518,45 @@ class CodeReviewTool:
482
518
  ```
483
519
  [提供完整、可执行的代码示例,而非概念性建议]
484
520
  ```
521
+ </issue>
485
522
 
523
+ <issue>
486
524
  ### 问题 2
487
525
  ...
526
+ </issue>
527
+ </file>
488
528
 
529
+ <file>
489
530
  ## 文件: [文件路径2]
490
531
  ...
532
+ </file>
533
+ </detailed_issues>
491
534
 
535
+ <language_specific>
492
536
  # 语言特定问题
493
537
  [根据检测到的编程语言,提供针对语言特定清单中项目的分析]
538
+ </language_specific>
494
539
 
540
+ <best_practices>
495
541
  # 最佳实践建议
496
542
  [提供适用于整个代码库的改进建议和最佳实践]
543
+ </best_practices>
497
544
 
545
+ <summary>
498
546
  # 总结
499
547
  [总结主要问题和优先处理建议]
500
- {ct("REPORT")}
548
+ </summary>
549
+ </code_review_report>
501
550
 
551
+ <notes>
502
552
  如果没有发现任何问题,请在REPORT标签内进行全面分析后明确说明"经过全面审查,未发现问题"并解释原因。
503
553
  必须确保对所有修改的文件都进行了审查,并在报告中明确提及每个文件,即使某些文件没有发现问题。
504
- 如果检测到了特定编程语言,请参考语言特定的审查清单进行评估,并在报告中包含相关分析。""",
554
+ 如果检测到了特定编程语言,请参考语言特定的审查清单进行评估,并在报告中包含相关分析。
555
+ </notes>
556
+
557
+ {ot("REPORT")}
558
+ [在此处插入完整的审查报告]
559
+ {ct("REPORT")}""",
505
560
  output_handler=[tool_registry],
506
561
  platform=PlatformRegistry().get_thinking_platform(),
507
562
  auto_complete=True