1 view

strands-agents/harness-sdk

Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud.

Python★ 8,321+455 that day#8 on trending

Analyzed September 25, 2026 at 7ae759d (main) with jscpd 5.4.0 in 1.4s. Code duplication stayed at 1.59% across 2 appearances since Sep 24.

D53.9/100
Project health490,157 lines of code (L)
Duplication57
7% in python, typescript, astro, tsx, javascript, bash, perl
Dead code64
4.9%
Complexity44
60.2%

The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.

1.59%duplicated code · 3,224 of 202,823 lines
260clones in code
1,000code files of 2,448 scanned
7.14%duplicated over all files · 3,117 clones

The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.

Largest clones in the code

  • 37 lines in 2 placespython462 tokens
    921This method implements the conversational interface with multiple input patterns:
    922- String input: Simple text input
    923- ContentBlock list: Multi-modal content blocks
    924- Message list: Complete messages with roles
    925- No input: Use existing conversation history
    926
    927Args:
    928    prompt: User input in various formats:
    929        - str: Simple text input
    930        - list[ContentBlock]: Multi-modal content blocks
    

    First 10 of 37 lines.

  • 36 lines in 2 placespython439 tokens
    831- No input: `agent()` - uses existing conversation history
    832
    833Args:
    834    prompt: User input in various formats:
    835        - str: Simple text input
    836        - list[ContentBlock]: Multi-modal content blocks
    837        - list[Message]: Complete messages with roles
    838        - None: Use existing conversation history
    839    invocation_state: Additional parameters to pass through the event loop.
    840    structured_output_model: Pydantic model type(s) for structured output (overrides agent default).
    

    First 10 of 36 lines.

  • 31 lines in 2 placespython351 tokens
    1022This method automatically uses task-augmented execution when the client
    1023opted in via ``tasks_config`` and the server advertises task support (on
    1024the mcp 1.x line, the tool's ``taskSupport`` setting is also honored).
    1025
    1026Args:
    1027    tool_use_id: Unique identifier for this tool use
    1028    name: Name of the tool to call
    1029    arguments: Optional arguments to pass to the tool
    1030    read_timeout_seconds: Optional timeout for the tool call. On the mcp 2.x line, the timeout
    1031        bounds each request round of a multi round-trip tool call rather than the call as a
    

    First 10 of 31 lines.

7 more
Largest clones over all files, tests and data included
By format, code only
FormatFilesLinesClonesDuplicated linesDuplication
python33778,5081822,3372.98%
typescript43288,845526490.73%
css455,155151322.56%
html482,1177693.26%
tsx3310,3423260.25%
javascript404,1301110.27%
astro5012,182000%
bash141,370000%
perl1174000%
By format, all files
FormatFilesLinesClonesDuplicated linesDuplication
typescript962232,6811,61017,8977.69%
python757234,3381,22416,1856.91%
yaml21011,0621722,97426.88%
markdown11822,415538583.83%
json534,1082165615.97%
css496,433171562.42%
html482,1177693.26%
javascript555,55151001.8%
tsx3310,3423260.25%
markup411,5283402.62%

Trending appearances

DayRankStarsFilesLinesClonesAll filesCodeHealthCommit
Sep 25, 2026#88,321 (+455)2,448546,4013,1177.14%1.59%D 53.97ae759d
Sep 24, 2026#77,943 (+115)2,448546,4943,1177.13%1.59%D 54.543b15b7

Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.