@ai-sdk/harness-deepagents 1.0.91 → 1.0.93

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.
@@ -9,26 +9,26 @@ importers:
9
9
  .:
10
10
  dependencies:
11
11
  '@langchain/anthropic':
12
- specifier: ^1.0.0
13
- version: 1.5.1(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
12
+ specifier: ^1.5.8
13
+ version: 1.5.8(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
14
14
  '@langchain/core':
15
- specifier: ^1.2.0
16
- version: 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
15
+ specifier: ^1.2.9
16
+ version: 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
17
17
  '@langchain/langgraph':
18
- specifier: ^1.4.4
19
- version: 1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
18
+ specifier: ^1.4.12
19
+ version: 1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
20
20
  '@langchain/mcp-adapters':
21
21
  specifier: 1.1.3
22
- version: 1.1.3(@cfworker/json-schema@4.1.1)(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph@1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))
22
+ version: 1.1.3(@cfworker/json-schema@4.1.1)(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph@1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))
23
23
  deepagents:
24
- specifier: 1.11.0
25
- version: 1.11.0(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph-checkpoint@1.1.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph-sdk@1.9.27(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph@1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))(langchain@1.5.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(langsmith@0.7.17(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
24
+ specifier: 1.13.1
25
+ version: 1.13.1(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph-checkpoint@1.1.5(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph-sdk@1.9.31(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph@1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))(langchain@1.5.10(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(langsmith@0.9.0(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
26
26
  langchain:
27
- specifier: ^1.5.0
28
- version: 1.5.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
27
+ specifier: ^1.5.10
28
+ version: 1.5.10(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
29
29
  langsmith:
30
- specifier: ^0.7.17
31
- version: 0.7.17(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
30
+ specifier: ^0.9.0
31
+ version: 0.9.0(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
32
32
  ws:
33
33
  specifier: 8.21.0
34
34
  version: 8.21.0
@@ -38,8 +38,8 @@ importers:
38
38
 
39
39
  packages:
40
40
 
41
- '@anthropic-ai/sdk@0.103.0':
42
- resolution: {integrity: sha512-1uG7RNgoHTUxzOXqSCODKt0UTVlxWiHk/2Tt2/uQJiPW7XzBeKVuJyd3Aw6T3LPyvZV/jDTnPLX7SaM70WLLjA==}
41
+ '@anthropic-ai/sdk@0.115.0':
42
+ resolution: {integrity: sha512-BJrFIVyjNuU8lfDyIJTvlRYzgQg+zEl78BxE7fq8esULsGz9IRQvGtW5spq3tydmtjQb/GFdooKGdGsetpx+lQ==}
43
43
  hasBin: true
44
44
  peerDependencies:
45
45
  zod: ^3.25.0 || ^4.0.0
@@ -60,24 +60,24 @@ packages:
60
60
  peerDependencies:
61
61
  hono: ^4
62
62
 
63
- '@langchain/anthropic@1.5.1':
64
- resolution: {integrity: sha512-j92zCCd5BFH3rHMRzc2wBmSKDoVpinof1oh8aFiAz9TWbSOc4tGU4n6bqwy/wP0GH1uO96zZHLGCHBMPgrxTNw==}
63
+ '@langchain/anthropic@1.5.8':
64
+ resolution: {integrity: sha512-KZWgIf+04M9XZHhgH1rVJkqw/C26DM4a4jKk4Qc4HaSbRawN2Dw5nDffna+IoaU/50ohTdyB3HOz9g8XFQYF2A==}
65
65
  engines: {node: '>=20'}
66
66
  peerDependencies:
67
- '@langchain/core': ^1.2.1
67
+ '@langchain/core': ^1.2.9
68
68
 
69
- '@langchain/core@1.2.3':
70
- resolution: {integrity: sha512-F+L5SsciykwDl7eDxacnhDTcWe1IF6jetzfkvI5PPfq6ogWHO7xcjU90SGh/3lqbbS0tgun+qF01KIqxawrCsA==}
69
+ '@langchain/core@1.2.9':
70
+ resolution: {integrity: sha512-conzSEj9Zu1AyXJLXsSbgrtxtxinmI1yGqQ5CIJZSoV5rvv+yvQE/vgBnoySpBQ/bl3YPgj2FL/gbDjWykLSfg==}
71
71
  engines: {node: '>=20'}
72
72
 
73
- '@langchain/langgraph-checkpoint@1.1.3':
74
- resolution: {integrity: sha512-wgzdQNeEsdw1e+4lvlj0tdq/RYR/k1vPin10g0ymGoehZDDgd9nvIllGXSXN4TFgF9sf5qQP/KTkOcLfeseIhA==}
73
+ '@langchain/langgraph-checkpoint@1.1.5':
74
+ resolution: {integrity: sha512-BwDwl5VeTOh6CVuiIPgsUgfK51vTJDMSbFcSCUfjJWsl8/DPdK/mbv+ejxJstkSk/BlSPMP4JfXWcN6jD2ea2Q==}
75
75
  engines: {node: '>=18'}
76
76
  peerDependencies:
77
77
  '@langchain/core': ^1.1.48
78
78
 
79
- '@langchain/langgraph-sdk@1.9.27':
80
- resolution: {integrity: sha512-EHGFsxawniLw2pGVUDLSSdMriASIP4oz0Mihytb50iRsIqhmODzGBWW7iLWA/0hqavggNpqjat4WD7LjmxiXSQ==}
79
+ '@langchain/langgraph-sdk@1.9.31':
80
+ resolution: {integrity: sha512-y1sSdq39IPb6mOX43+JiSezVbUdA8EBEJ1gvn91GP0jrLG0EcSApeRDCjRouyDpPXZ51bQXEQhA8CiHM0mzcAw==}
81
81
  peerDependencies:
82
82
  '@langchain/core': ^1.1.48
83
83
  react: ^18 || ^19
@@ -94,8 +94,8 @@ packages:
94
94
  vue:
95
95
  optional: true
96
96
 
97
- '@langchain/langgraph@1.4.8':
98
- resolution: {integrity: sha512-DN1Np1XefdBEbp1qBKlt39cwoL743AAGpR5Ipja0gY2YbWvsoQnOTIrjnj/orSAhaUYsdTKS8VSWdFzsHZo6Ig==}
97
+ '@langchain/langgraph@1.4.12':
98
+ resolution: {integrity: sha512-63iH/igH5Fh5fHqmWp09YYWaDKKB9v4RCmYNJBrnQ224rFRbjebgyYW6o5RCczN5FZxIhQj+xT51rrNmG0zi5A==}
99
99
  engines: {node: '>=18'}
100
100
  peerDependencies:
101
101
  '@langchain/core': ^1.1.48
@@ -217,15 +217,15 @@ packages:
217
217
  supports-color:
218
218
  optional: true
219
219
 
220
- deepagents@1.11.0:
221
- resolution: {integrity: sha512-HPKLmOoi23fRykXpJgrhYNhjm+Yrd3qVmvwm7mvJ2DeTcJBKu1mc+VYbYeHunIVfi9F05GgjZa9JjdWwuAVuPQ==}
220
+ deepagents@1.13.1:
221
+ resolution: {integrity: sha512-DB8dkbrd4cqejroU90qAGTtY7ZvIchsMSaOMjE7TWnsi/6IrpBPxg3xN0Vxjuq/x8jkufkIqk3I57RbZmdSJFw==}
222
222
  peerDependencies:
223
- '@langchain/core': ^1.2.0
224
- '@langchain/langgraph': ^1.4.4
225
- '@langchain/langgraph-checkpoint': ^1.1.2
223
+ '@langchain/core': ^1.2.9
224
+ '@langchain/langgraph': ^1.4.10
225
+ '@langchain/langgraph-checkpoint': ^1.1.5
226
226
  '@langchain/langgraph-sdk': ^1.9.23
227
- langchain: ^1.5.0
228
- langsmith: ^0.7.1
227
+ langchain: ^1.5.10
228
+ langsmith: '>=0.7.1 <0.10.0'
229
229
 
230
230
  depd@2.0.0:
231
231
  resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
@@ -408,14 +408,14 @@ packages:
408
408
  json-schema-typed@8.0.2:
409
409
  resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==}
410
410
 
411
- langchain@1.5.3:
412
- resolution: {integrity: sha512-YRYPy1xPq4CgKe0NdPoscYHnKBW5cViEyWiZsUKQfN3xL1X5DpGlIpaBQg1A/t6o9ePKE7J5b7nqrfLz8t7/Rw==}
411
+ langchain@1.5.10:
412
+ resolution: {integrity: sha512-JaC12C1qyGn985vvjttr4hr8lfFzWhrXp2M1byZJGmNJ2RiIgqnhiYDuLlG/xHDxhKD3onJ5pCuUif/cbdqPhA==}
413
413
  engines: {node: '>=20'}
414
414
  peerDependencies:
415
- '@langchain/core': ^1.2.1
415
+ '@langchain/core': ^1.2.9
416
416
 
417
- langsmith@0.7.17:
418
- resolution: {integrity: sha512-FfmxKOVp+qBkdbOWTwXxU7qeX2H40RMsLW9Us+53/4rZYl/QzfUeeBe/rE98mfuSSnEz1tOOMjoPJIYoMt1wnw==}
417
+ langsmith@0.9.0:
418
+ resolution: {integrity: sha512-tlg/aG7qezAKY6G3fgADSX7PkRj+JKoF3z7QNkCMsAOvwvuzhiwP9Amn1Z+zAIxuKoWuXQdIjtFN0LVmUC1oUQ==}
419
419
  peerDependencies:
420
420
  '@opentelemetry/api': '*'
421
421
  '@opentelemetry/exporter-trace-otlp-proto': '*'
@@ -679,7 +679,7 @@ packages:
679
679
 
680
680
  snapshots:
681
681
 
682
- '@anthropic-ai/sdk@0.103.0(zod@4.4.3)':
682
+ '@anthropic-ai/sdk@0.115.0(zod@4.4.3)':
683
683
  dependencies:
684
684
  json-schema-to-ts: 3.1.1
685
685
  standardwebhooks: 1.0.0
@@ -694,18 +694,18 @@ snapshots:
694
694
  dependencies:
695
695
  hono: 4.13.1
696
696
 
697
- '@langchain/anthropic@1.5.1(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))':
697
+ '@langchain/anthropic@1.5.8(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))':
698
698
  dependencies:
699
- '@anthropic-ai/sdk': 0.103.0(zod@4.4.3)
700
- '@langchain/core': 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
699
+ '@anthropic-ai/sdk': 0.115.0(zod@4.4.3)
700
+ '@langchain/core': 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
701
701
  zod: 4.4.3
702
702
 
703
- '@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)':
703
+ '@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)':
704
704
  dependencies:
705
705
  '@cfworker/json-schema': 4.1.1
706
706
  '@standard-schema/spec': 1.1.0
707
707
  js-tiktoken: 1.0.21
708
- langsmith: 0.7.17(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
708
+ langsmith: 0.9.0(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
709
709
  mustache: 4.2.0
710
710
  p-queue: 6.6.2
711
711
  zod: 4.4.3
@@ -716,23 +716,23 @@ snapshots:
716
716
  - openai
717
717
  - ws
718
718
 
719
- '@langchain/langgraph-checkpoint@1.1.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))':
719
+ '@langchain/langgraph-checkpoint@1.1.5(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))':
720
720
  dependencies:
721
- '@langchain/core': 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
721
+ '@langchain/core': 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
722
722
 
723
- '@langchain/langgraph-sdk@1.9.27(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))':
723
+ '@langchain/langgraph-sdk@1.9.31(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))':
724
724
  dependencies:
725
- '@langchain/core': 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
725
+ '@langchain/core': 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
726
726
  '@langchain/protocol': 0.0.18
727
727
  '@types/json-schema': 7.0.15
728
728
  p-queue: 9.3.1
729
729
  p-retry: 7.1.1
730
730
 
731
- '@langchain/langgraph@1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)':
731
+ '@langchain/langgraph@1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)':
732
732
  dependencies:
733
- '@langchain/core': 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
734
- '@langchain/langgraph-checkpoint': 1.1.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
735
- '@langchain/langgraph-sdk': 1.9.27(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
733
+ '@langchain/core': 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
734
+ '@langchain/langgraph-checkpoint': 1.1.5(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
735
+ '@langchain/langgraph-sdk': 1.9.31(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
736
736
  '@langchain/protocol': 0.0.18
737
737
  '@standard-schema/spec': 1.1.0
738
738
  zod: 4.4.3
@@ -742,10 +742,10 @@ snapshots:
742
742
  - svelte
743
743
  - vue
744
744
 
745
- '@langchain/mcp-adapters@1.1.3(@cfworker/json-schema@4.1.1)(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph@1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))':
745
+ '@langchain/mcp-adapters@1.1.3(@cfworker/json-schema@4.1.1)(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph@1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))':
746
746
  dependencies:
747
- '@langchain/core': 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
748
- '@langchain/langgraph': 1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
747
+ '@langchain/core': 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
748
+ '@langchain/langgraph': 1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
749
749
  '@modelcontextprotocol/sdk': 1.30.0(@cfworker/json-schema@4.1.1)(zod@4.4.3)
750
750
  debug: 4.4.3
751
751
  zod: 4.4.3
@@ -872,15 +872,15 @@ snapshots:
872
872
  dependencies:
873
873
  ms: 2.1.3
874
874
 
875
- deepagents@1.11.0(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph-checkpoint@1.1.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph-sdk@1.9.27(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph@1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))(langchain@1.5.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(langsmith@0.7.17(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)):
875
+ deepagents@1.13.1(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(@langchain/langgraph-checkpoint@1.1.5(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph-sdk@1.9.31(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)))(@langchain/langgraph@1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3))(langchain@1.5.10(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(langsmith@0.9.0(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)):
876
876
  dependencies:
877
- '@langchain/core': 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
878
- '@langchain/langgraph': 1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
879
- '@langchain/langgraph-checkpoint': 1.1.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
880
- '@langchain/langgraph-sdk': 1.9.27(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
877
+ '@langchain/core': 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
878
+ '@langchain/langgraph': 1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
879
+ '@langchain/langgraph-checkpoint': 1.1.5(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
880
+ '@langchain/langgraph-sdk': 1.9.31(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
881
881
  fast-glob: 3.3.3
882
- langchain: 1.5.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
883
- langsmith: 0.7.17(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
882
+ langchain: 1.5.10(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
883
+ langsmith: 0.9.0(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
884
884
  micromatch: 4.0.8
885
885
  yaml: 2.9.0
886
886
  zod: 4.4.3
@@ -1081,12 +1081,12 @@ snapshots:
1081
1081
 
1082
1082
  json-schema-typed@8.0.2: {}
1083
1083
 
1084
- langchain@1.5.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0):
1084
+ langchain@1.5.10(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0):
1085
1085
  dependencies:
1086
- '@langchain/core': 1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
1087
- '@langchain/langgraph': 1.4.8(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
1088
- '@langchain/langgraph-checkpoint': 1.1.3(@langchain/core@1.2.3(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
1089
- langsmith: 0.7.17(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
1086
+ '@langchain/core': 1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
1087
+ '@langchain/langgraph': 1.4.12(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))(zod@4.4.3)
1088
+ '@langchain/langgraph-checkpoint': 1.1.5(@langchain/core@1.2.9(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0))
1089
+ langsmith: 0.9.0(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0)
1090
1090
  zod: 4.4.3
1091
1091
  transitivePeerDependencies:
1092
1092
  - '@opentelemetry/api'
@@ -1099,7 +1099,7 @@ snapshots:
1099
1099
  - vue
1100
1100
  - ws
1101
1101
 
1102
- langsmith@0.7.17(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0):
1102
+ langsmith@0.9.0(openai@6.43.0(ws@8.21.0)(zod@4.4.3))(ws@8.21.0):
1103
1103
  dependencies:
1104
1104
  p-queue: 6.6.2
1105
1105
  optionalDependencies:
@@ -1,10 +1,12 @@
1
1
  import type {
2
+ HarnessV1Authentication,
2
3
  HarnessV1RequestTransformation,
3
4
  HarnessV1RequestTransformationSources,
4
5
  } from '@ai-sdk/harness';
5
6
  import {
6
7
  createCredentialRequestTransformation,
7
8
  getAiGatewayAuthFromEnv,
9
+ isHarnessAuthenticationEnvironment,
8
10
  } from '@ai-sdk/harness/utils';
9
11
 
10
12
  export const DEEPAGENTS_CREDENTIAL_ENVIRONMENT_VARIABLES = [
@@ -63,28 +65,7 @@ export function createDeepAgentsRequestTransformations({
63
65
 
64
66
  export type DeepAgentsResolvedAuthenticationMode = 'anthropic' | 'ai-gateway';
65
67
 
66
- export type DeepAgentsAuthenticationMode =
67
- | DeepAgentsResolvedAuthenticationMode
68
- | 'auto';
69
-
70
- /**
71
- * @deprecated Passing an object to auth options is deprecated. Use a `DeepAgentsAuthenticationMode` string value ("auto" | "anthropic" | "ai-gateway") instead, and pass credentials via environment variables.
72
- */
73
- export type LegacyDeepAgentsAuthOptions = {
74
- readonly anthropic?: {
75
- readonly apiKey?: string;
76
- readonly authToken?: string;
77
- readonly baseUrl?: string;
78
- };
79
- readonly gateway?: {
80
- readonly apiKey?: string;
81
- readonly baseUrl?: string;
82
- };
83
- };
84
-
85
- export type DeepAgentsAuthOptions =
86
- | DeepAgentsAuthenticationMode
87
- | LegacyDeepAgentsAuthOptions;
68
+ export type DeepAgentsAuthenticationMode = HarnessV1Authentication<'anthropic'>;
88
69
 
89
70
  // DeepAgents always drives the Anthropic client. Non-Anthropic models reach it
90
71
  // through AI Gateway's Anthropic-compatible endpoint, which translates to any
@@ -93,40 +74,42 @@ export function resolveDeepAgentsEnv({
93
74
  auth,
94
75
  processEnv = process.env,
95
76
  }: {
96
- auth?: DeepAgentsAuthOptions;
77
+ auth?: DeepAgentsAuthenticationMode;
97
78
  processEnv?: Record<string, string | undefined>;
98
79
  }): Record<string, string> {
99
- const normalizedAuth = normalizeDeepAgentsAuthToLegacyAuth(auth);
80
+ const suppliedEnvironment = isHarnessAuthenticationEnvironment(auth);
81
+ const authenticationEnvironment = suppliedEnvironment ? auth : processEnv;
100
82
 
101
- if (normalizedAuth?.anthropic) {
102
- return pickAnthropic({ explicit: normalizedAuth.anthropic, processEnv });
83
+ if (auth === 'anthropic') {
84
+ return pickAnthropic({ processEnv: authenticationEnvironment });
103
85
  }
104
86
 
105
- const gatewayAuthFromEnv = getAiGatewayAuthFromEnv({ env: processEnv });
106
- if (normalizedAuth?.gateway) {
107
- return pickGateway({
108
- explicit: normalizedAuth.gateway,
109
- gatewayAuthFromEnv,
110
- });
111
- }
112
- if (gatewayAuthFromEnv.apiKey) {
113
- return pickGateway({ explicit: {}, gatewayAuthFromEnv });
87
+ const gatewayAuthFromEnv = getAiGatewayAuthFromEnv({
88
+ env: authenticationEnvironment,
89
+ });
90
+ if (auth === 'ai-gateway' || gatewayAuthFromEnv.apiKey) {
91
+ return pickGateway({ gatewayAuthFromEnv });
114
92
  }
115
93
 
116
- return pickAnthropic({ processEnv });
94
+ return pickAnthropic({ processEnv: authenticationEnvironment });
117
95
  }
118
96
 
119
97
  export function resolveDeepAgentsAuthenticationMode({
120
98
  auth,
121
99
  processEnv = process.env,
122
100
  }: {
123
- auth?: DeepAgentsAuthOptions;
101
+ auth?: DeepAgentsAuthenticationMode;
124
102
  processEnv?: Record<string, string | undefined>;
125
103
  }): DeepAgentsResolvedAuthenticationMode {
126
- if (auth === 'anthropic' || (typeof auth !== 'string' && auth?.anthropic)) {
104
+ if (isHarnessAuthenticationEnvironment(auth)) {
105
+ return getAiGatewayAuthFromEnv({ env: auth }).apiKey
106
+ ? 'ai-gateway'
107
+ : 'anthropic';
108
+ }
109
+ if (auth === 'anthropic') {
127
110
  return 'anthropic';
128
111
  }
129
- if (auth === 'ai-gateway' || (typeof auth !== 'string' && auth?.gateway)) {
112
+ if (auth === 'ai-gateway') {
130
113
  return 'ai-gateway';
131
114
  }
132
115
  return getAiGatewayAuthFromEnv({ env: processEnv }).apiKey
@@ -134,59 +117,29 @@ export function resolveDeepAgentsAuthenticationMode({
134
117
  : 'anthropic';
135
118
  }
136
119
 
137
- function normalizeDeepAgentsAuthToLegacyAuth(
138
- auth: DeepAgentsAuthOptions | undefined,
139
- ): LegacyDeepAgentsAuthOptions | undefined {
140
- if (auth == null || auth === 'auto') {
141
- return undefined;
142
- }
143
- if (typeof auth === 'string') {
144
- switch (auth) {
145
- case 'anthropic':
146
- return { anthropic: {} };
147
- case 'ai-gateway':
148
- return { gateway: {} };
149
- default:
150
- return undefined;
151
- }
152
- }
153
-
154
- console.warn(
155
- '[deepagents] Passing an object to auth options is deprecated. Use a string mode ("auto" | "anthropic" | "ai-gateway") instead, and pass credentials via environment variables.',
156
- );
157
- return auth;
158
- }
159
-
160
120
  function pickAnthropic({
161
- explicit,
162
121
  processEnv,
163
122
  }: {
164
- explicit?: NonNullable<LegacyDeepAgentsAuthOptions['anthropic']>;
165
123
  processEnv: Record<string, string | undefined>;
166
124
  }): Record<string, string> {
167
125
  const env: Record<string, string> = {};
168
- const apiKey = explicit?.apiKey ?? processEnv.ANTHROPIC_API_KEY;
126
+ const apiKey = processEnv.ANTHROPIC_API_KEY;
169
127
  if (apiKey) env.ANTHROPIC_API_KEY = apiKey;
170
- const authToken = explicit?.authToken ?? processEnv.ANTHROPIC_AUTH_TOKEN;
128
+ const authToken = processEnv.ANTHROPIC_AUTH_TOKEN;
171
129
  if (authToken) env.ANTHROPIC_AUTH_TOKEN = authToken;
172
- const baseUrl = explicit?.baseUrl ?? processEnv.ANTHROPIC_BASE_URL;
130
+ const baseUrl = processEnv.ANTHROPIC_BASE_URL;
173
131
  if (baseUrl) env.ANTHROPIC_BASE_URL = baseUrl;
174
132
  return env;
175
133
  }
176
134
 
177
135
  function pickGateway({
178
- explicit,
179
136
  gatewayAuthFromEnv,
180
137
  }: {
181
- explicit: NonNullable<LegacyDeepAgentsAuthOptions['gateway']>;
182
138
  gatewayAuthFromEnv: ReturnType<typeof getAiGatewayAuthFromEnv>;
183
139
  }): Record<string, string> {
184
- const apiKey = explicit.apiKey ?? gatewayAuthFromEnv.apiKey;
140
+ const apiKey = gatewayAuthFromEnv.apiKey;
185
141
  // The Anthropic SDK appends `/v1/messages`, so the gateway base stays at its root.
186
- const baseUrl = (explicit.baseUrl ?? gatewayAuthFromEnv.baseUrl).replace(
187
- /\/+$/,
188
- '',
189
- );
142
+ const baseUrl = gatewayAuthFromEnv.baseUrl.replace(/\/+$/, '');
190
143
  const env: Record<string, string> = {};
191
144
  if (apiKey) {
192
145
  env.AI_GATEWAY_API_KEY = apiKey;
@@ -34,6 +34,7 @@ export const startMessageSchema = harnessV1BridgeStartBaseSchema.extend({
34
34
  effort: z.enum(['low', 'medium', 'high', 'xhigh', 'max']).optional(),
35
35
  // In-backend skills source dirs ($HOME and <workDir>), passed to createDeepAgent({ skills }).
36
36
  skillsPaths: z.array(z.string()).optional(),
37
+ skillsChanged: z.boolean().optional(),
37
38
  // Max LangGraph super-steps per turn (streamEvents recursionLimit).
38
39
  recursionLimit: z.number().optional(),
39
40
  });
@@ -35,6 +35,7 @@ import {
35
35
  warnCredentialBrokeringUnavailable,
36
36
  waitForBridgeReady,
37
37
  writeSkills as writeHarnessSkills,
38
+ type WriteSkillsResult,
38
39
  } from '@ai-sdk/harness/utils';
39
40
  import {
40
41
  tool,
@@ -52,7 +53,7 @@ import {
52
53
  DEEPAGENTS_CREDENTIAL_ENVIRONMENT_VARIABLES,
53
54
  resolveDeepAgentsAuthenticationMode,
54
55
  resolveDeepAgentsEnv,
55
- type DeepAgentsAuthOptions,
56
+ type DeepAgentsAuthenticationMode,
56
57
  } from './deepagents-auth';
57
58
  import {
58
59
  outboundMessageSchema,
@@ -86,14 +87,19 @@ export type DeepAgentsThinkingConfig =
86
87
  const SKILLS_SOURCE_PATH = '/.agents/skills';
87
88
 
88
89
  export type DeepAgentsHarnessSettings = {
89
- readonly auth?: DeepAgentsAuthOptions;
90
+ readonly auth?: DeepAgentsAuthenticationMode;
90
91
  /**
91
92
  * Customizes each credential value before it is forwarded into a sandbox
92
93
  * process. This does not restrict which credentials the harness adapter can
93
94
  * discover, read, or otherwise access in the host process.
94
95
  */
95
96
  readonly credentialForwarding?: HarnessV1CredentialForwarding;
96
- /** Model id for the DeepAgents runtime, e.g. `claude-sonnet-4` (converted to `provider:model`). */
97
+ /**
98
+ * Model id for the DeepAgents runtime, e.g. `claude-sonnet-4` (converted to
99
+ * `provider:model`).
100
+ *
101
+ * @deprecated Use `model` on `HarnessAgent` instead.
102
+ */
97
103
  readonly model?: string;
98
104
  /**
99
105
  * Controls Anthropic extended thinking for the Deep Agents model. Unset
@@ -216,6 +222,7 @@ export function createDeepAgents(
216
222
  lifecycleStateSchema: deepAgentsResumeStateSchema,
217
223
  getBootstrap: getDeepAgentsBootstrap,
218
224
  doStart: async startOpts => {
225
+ const model = startOpts.model ?? settings.model;
219
226
  const permissionMode = startOpts.permissionMode;
220
227
  const sandboxSession = startOpts.sandboxSession;
221
228
  const toolSafeSandboxSession =
@@ -294,6 +301,17 @@ export function createDeepAgents(
294
301
  );
295
302
 
296
303
  const workDir = startOpts.sessionWorkDir;
304
+ /*
305
+ * Deep Agents discovers repository skills under the working directory.
306
+ * Harness-provided skills use an absolute home-directory path listed
307
+ * last, so they take precedence when names collide.
308
+ */
309
+ const homeDir = await resolveSandboxHomeDir({
310
+ sandbox: toolSafeSandboxSession,
311
+ abortSignal: startOpts.abortSignal,
312
+ });
313
+ const homeSkillsRoot = `${homeDir}${SKILLS_SOURCE_PATH}`;
314
+ const skillsPaths = [`${workDir}${SKILLS_SOURCE_PATH}`, homeSkillsRoot];
297
315
  const sessionDataDir = `${defaultWorkingDirectory}/.agent-runs/${startOpts.sessionId}`;
298
316
  const bridgeStateDir = `${sessionDataDir}/bridge`;
299
317
  const timeoutMs = settings.startupTimeoutMs ?? 120_000;
@@ -337,7 +355,7 @@ export function createDeepAgents(
337
355
  sessionId: startOpts.sessionId,
338
356
  channel: attachChannel,
339
357
  proc: undefined,
340
- model: settings.model,
358
+ model,
341
359
  thinking: settings.thinking,
342
360
  effort: settings.effort,
343
361
  bridgePort: coords.port,
@@ -345,7 +363,9 @@ export function createDeepAgents(
345
363
  sandboxId,
346
364
  sandboxCredentialEnvironment,
347
365
  isResume: true,
348
- attached: true,
366
+ sandbox: toolSafeSandboxSession,
367
+ homeSkillsRoot,
368
+ skillsPaths,
349
369
  permissionMode,
350
370
  builtinToolFiltering: startOpts.builtinToolFiltering,
351
371
  recursionLimit: settings.recursionLimit,
@@ -365,25 +385,6 @@ export function createDeepAgents(
365
385
  ? randomBytes(32).toString('hex')
366
386
  : settings.mintBridgeToken(sandboxId!);
367
387
 
368
- // Always discover repo-provided skills under <workDir>/.agents/skills (e.g. a cloned repo); a missing dir is tolerated by deepagents.
369
- // Absolute paths: LocalShellBackend (non-virtual) treats a leading-slash path as a real fs path.
370
- const skillsPaths = [`${workDir}${SKILLS_SOURCE_PATH}`];
371
- // Host-provided skills go to $HOME (out of the work dir) and take priority (listed last → wins on name collision).
372
- if ((startOpts.skills?.length ?? 0) > 0) {
373
- const homeDir = await resolveSandboxHomeDir({
374
- sandbox: toolSafeSandboxSession,
375
- abortSignal: startOpts.abortSignal,
376
- });
377
- const homeSkillsRoot = `${homeDir}${SKILLS_SOURCE_PATH}`;
378
- await writeSkills({
379
- sandbox: toolSafeSandboxSession,
380
- root: homeSkillsRoot,
381
- skills: startOpts.skills ?? [],
382
- abortSignal: startOpts.abortSignal,
383
- });
384
- skillsPaths.push(homeSkillsRoot);
385
- }
386
-
387
388
  const forwardedAuthEnvironment = credentialsBrokered
388
389
  ? sandboxAuthEnvironment
389
390
  : await applyCredentialForwarding({
@@ -469,7 +470,7 @@ export function createDeepAgents(
469
470
  sessionId: startOpts.sessionId,
470
471
  channel,
471
472
  proc,
472
- model: settings.model,
473
+ model,
473
474
  thinking: settings.thinking,
474
475
  effort: settings.effort,
475
476
  bridgePort: boundPort,
@@ -477,8 +478,8 @@ export function createDeepAgents(
477
478
  sandboxId,
478
479
  sandboxCredentialEnvironment,
479
480
  isResume,
480
- // Freshly spawned bridge — it must receive the instructions on the first prompt.
481
- attached: false,
481
+ sandbox: toolSafeSandboxSession,
482
+ homeSkillsRoot,
482
483
  skillsPaths,
483
484
  permissionMode,
484
485
  builtinToolFiltering: startOpts.builtinToolFiltering,
@@ -565,12 +566,12 @@ async function writeSkills({
565
566
  root: string;
566
567
  skills: ReadonlyArray<HarnessV1Skill>;
567
568
  abortSignal?: AbortSignal;
568
- }): Promise<void> {
569
+ }): Promise<WriteSkillsResult> {
569
570
  /*
570
571
  * DeepAgents requires each `SKILL.md` frontmatter name to match the parent
571
572
  * directory name, so keep the stricter lowercase skill-name policy here.
572
573
  */
573
- await writeHarnessSkills({
574
+ return writeHarnessSkills({
574
575
  sandbox,
575
576
  rootDir: root,
576
577
  skills,
@@ -629,7 +630,8 @@ function createSession({
629
630
  sandboxId,
630
631
  sandboxCredentialEnvironment,
631
632
  isResume,
632
- attached,
633
+ sandbox,
634
+ homeSkillsRoot,
633
635
  skillsPaths,
634
636
  permissionMode,
635
637
  builtinToolFiltering,
@@ -648,10 +650,8 @@ function createSession({
648
650
  sandboxId: string | undefined;
649
651
  sandboxCredentialEnvironment: Record<string, string> | undefined;
650
652
  isResume: boolean;
651
- // True only when attaching to a live bridge that already built the agent with
652
- // its instructions. A fresh spawn (incl. a respawn on attach failure or a
653
- // stop-resume) starts a new bridge that must receive the instructions again.
654
- attached: boolean;
653
+ sandbox: SandboxSession;
654
+ homeSkillsRoot: string;
655
655
  skillsPaths?: string[];
656
656
  permissionMode?: HarnessV1PermissionMode;
657
657
  builtinToolFiltering?: HarnessV1BuiltinToolFiltering;
@@ -659,7 +659,6 @@ function createSession({
659
659
  mcpServers?: Record<string, unknown>;
660
660
  }): HarnessV1Session {
661
661
  let stopped = false;
662
- let instructionsApplied = attached;
663
662
 
664
663
  const wireTurn = (turnOpts: {
665
664
  emit: (event: HarnessV1StreamPart) => void;
@@ -798,19 +797,23 @@ function createSession({
798
797
  harnessId: 'deepagents',
799
798
  });
800
799
  }
800
+ const skillWriteResult = await writeSkills({
801
+ sandbox,
802
+ root: homeSkillsRoot,
803
+ skills: promptOpts.skills,
804
+ abortSignal: promptOpts.abortSignal,
805
+ });
801
806
  const control = wireTurn({
802
807
  emit: promptOpts.emit,
803
808
  abortSignal: promptOpts.abortSignal,
804
809
  });
805
810
 
806
- const applyInstructions =
807
- !instructionsApplied && !!promptOpts.instructions;
808
- instructionsApplied = true;
809
-
810
811
  channel.send({
811
812
  type: 'start',
812
813
  prompt: extractUserText(promptOpts.prompt),
813
- ...(applyInstructions ? { instructions: promptOpts.instructions } : {}),
814
+ ...(promptOpts.instructions
815
+ ? { instructions: promptOpts.instructions }
816
+ : {}),
814
817
  tools: (promptOpts.tools ?? []).map(t => ({
815
818
  name: t.name,
816
819
  description: t.description,
@@ -823,6 +826,7 @@ function createSession({
823
826
  ...(thinking ? { thinking } : {}),
824
827
  ...(effort ? { effort } : {}),
825
828
  ...(skillsPaths?.length ? { skillsPaths } : {}),
829
+ skillsChanged: skillWriteResult.changed,
826
830
  ...(permissionMode ? { permissionMode } : {}),
827
831
  ...(builtinToolFiltering ? { builtinToolFiltering } : {}),
828
832
  ...(recursionLimit != null ? { recursionLimit } : {}),
package/src/index.ts CHANGED
@@ -9,7 +9,4 @@ export type {
9
9
  DeepAgentsHarnessSettings,
10
10
  DeepAgentsThinkingConfig,
11
11
  } from './deepagents-harness';
12
- export type {
13
- DeepAgentsAuthenticationMode,
14
- DeepAgentsAuthOptions,
15
- } from './deepagents-auth';
12
+ export type { DeepAgentsAuthenticationMode } from './deepagents-auth';